我正在使用Model-View-Presenter方法开发我的应用程序。 我也在使用Dagger2,我创建了这个模块:
@Module
public class FirebaseModule {
@Provides @Singleton
public DatabaseReference provideDatabaseReference(){
return FirebaseDatabase.getInstance().getReference();
}
@Provides
public FirebaseAuth provideFirebaseAuth(){
return FirebaseAuth.getInstance();
}
}
这是我可以更新演示者的模型:
public class FirebaseModel implements Model, FirebaseAuth.AuthStateListener {
@Inject
FirebaseAuth auth;
Presenter presenter;
FirebaseUser user;
@Inject
public FirebaseModel(Presenter presenter) {
this.presenter = presenter;
}
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
user = auth.getCurrentUser();
presenter.updateUser(user);
}
@Override
public void loadUser() {
auth.addAuthStateListener(this);
}
}
问题是注入
FirebaseAuth auth;
返回NullPointerException
。
我已经读过这个getInstance()必须在onCreate()
的{{1}}方法中完成,但是在这种情况下它会打破MVP方法,因为视图逻辑必须是被动的。
那么在这种情况下我该怎么做?
谢谢