所以我有一个使用firebase登录和存储数据的应用程序,我们还使用了firebase数据库表。
该应用已登录google按钮,因此,如果验证了Google帐户,我会将该帐户传递给firebase以将其存储在数据库中。创建/获取帐户后,我还将用户配置文件存储在firebase数据库表中。所以我的问题是关于使用叔叔bob的干净架构方法的存储库。
我应该为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);
}
我在这里注入的互动者将使用他们自己的回购。一个叫
@inject someGoogleAPILoginRepository r1; //in i1
//and another in i2 called:
@inject someFirebaseProfileRepository r2;
i1连接谷歌API以验证谷歌帐户,然后我将在回调中使用i2来创建个人资料。
所以我现在正在做的是google API有一个repo而firebase有一个repo,我有两个独立的交互者,这是可以接受的吗?事情是谷歌回购,我不存储任何东西。我只是使用它,所以我有一个帐户登录到firebase。
答案 0 :(得分:0)