0
我希望能够意图传递给,如果基于活动的用户火力验证验证状态改变
登录状态的改变,我必须在LoginActivity的OnCreate方法中的以下AuthStateListener
如果用户在登录,然后我希望他们被转发到在MainActivity
但是,如果用户将被注销那么他们需要到该LoginActivity
,当他们签署的问题就来了Ø它陷入了一个无限循环,不断激发着LoginActivity的意图。
当auth状态发生变化时,有什么方法可以告诉用户在哪里(哪个活动)。这样,我可以把内已签署了意向通话if语句来检查,如果他们已经在LoginAcitvity,从而防止环路
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Intent intent = new Intent(getBaseContext(), MainActivity.class);
//intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);
Log.d("LOG_Login", "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
String className = this.getClass().getSimpleName();
if (!(className == "LoginActivity")) {
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
//intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);
}
Log.d("LOG_Login", "onAuthStateChanged:signed_out");
}
// ...
}
};
哪个'活动'是你的'FirebaseAuth'代码运行?如果它在你的LoginActivity中,那么你不需要担心启动这个活动,而是你可以清除UI,例如登录字段(用户名/密码)。 – ishmaelMakitla
FirebaseAuth在LoginActivity OnCreate中被调用。但用户可以从其他活动退出。如果他们这样做,我想将它们发回到登录屏幕。当状态更改为退出结果时,将用户留在当前屏幕 – PowerMan2015
上注释掉意图,我认为我只需添加一次AuthListener或者需要为每个活动重复该操作? – PowerMan2015