我正在使用 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()
方法中完成MainActivity
,但在这种情况下,它破坏了 MVP 方法,因为视图逻辑必须是被动的。
那么在这种情况下我该怎么办?
谢谢