FirebaseAuth.getInstance()在FirebaseModule中返回null

时间:2017-05-10 09:08:43

标签: android firebase firebase-authentication dagger-2 android-mvp

我正在使用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方法,因为视图逻辑必须是被动的。

那么在这种情况下我该怎么做?

谢谢

0 个答案:

没有答案