私はfirebaseをログイン用に使用し、データを保存するアプリケーションをfirebase DBテーブルも使用しています。Androidのクリーンアーキテクチャ - いつ新しいリポジトリを作成しますか?
アプリにはログインボタンがあるので、Googleアカウントが確認されていれば、そのアカウントをfirebaseに渡してdbに保存します。アカウントが作成/取得された後、ユーザープロファイルもfirebase DBテーブルに保存されます。だから私の質問は、叔父のボブのクリーンなアーキテクチャのアプローチを使用しているリポジトリについてです。
Googleログイン用のリポジトリとプロファイル用のリポジトリを作成する必要がありますか?つまり、ユースケース(インタラクタ)を見れば、googleAPIInteractor
とfirebaseInteractor
の権利があるはずです。または、UserDataInteractor
という単一のインタラクタを という名前で作成するだけですか?私が何を意味するか見ていますか?私は作成すべきリポジトリの数を混乱させる。私は、新しいリポジトリごとに1:1の権利を持つインタラクタが必要だと思いますか?
のは、私が達成しようとしているものを見てみましょう:
プレゼンターコードで(MVPアーキテクチャを仮定して)私はこれを行うだろう:
public class MyPresenter extends PresenterBase {
@inject someGoogleAPIInteractor i1;
@inject somefirebaseInteractorInteractor i2;
//both these repo's are using firebase so should i just use 1 repo instead ?
//.....
public void doLogin(String googleAccount){
i1.fetchOrCreateGoogleLogin(,googleAccount,someSubscriber);
//RXJava async call, not important. but it confirms google account and then in subscriber authenticates into firebase account for my app
}
public void getProfile(String firebaseAccount) {
//this just gets stuff about the user like order history, name , etc
i2.getFirebaseProfile(firebaseAccount,someOtherSubscriber);
}
私はここに注入された相互作用を使用します彼ら自身のレポ。一つはGoogleアカウントを認証するために
@inject someGoogleAPILoginRepository r1; //in i1
//and another in i2 called:
@inject someFirebaseProfileRepository r2;
i1は、GoogleのAPIに接続すると呼ばれ、その後、私は、プロファイルを作成するために、コールバックでI2を使用します。
私は現在、Google APIにレポがあり、firebaseにレポがあり、2つの別個のインタラクタがあり、許容できるのですか?物事は、Googleのレポのために、私は何も格納されていません。私はそれを使用しているので、firebaseにログインするためのアカウントを持っています。