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