Я хочу, чтобы иметь возможность передать намерение деятельности, основанной на если Войти изменения состояния для пользователяFireBase аутентификация Auth изменение состояния
я должен следующие AuthStateListener в OnCreate способа LoginActivity
Если пользователь вошел в систему, то я хочу, чтобы они были направлены в MainActivity
Однако если пользователь выходит из системы, то они должны Гото в LoginActivity
проблема возникает, когда они подписаны о ut, он застревает в бесконечном цикле, постоянно стреляя в LoginActivity.
Есть ли способ сообщить, где находится пользователь (какая деятельность), когда изменяется состояние auth. Таким образом, я мог бы поместить подписанный из намерения вызов в течение если заявление, чтобы проверить, если они уже в 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, вам не нужно беспокоиться о начале этого действия, вместо этого вы можете очистить пользовательский интерфейс, например, поля входа (имя пользователя/пароль). – ishmaelMakitla
FirebaseAuth вызывается в LoginActivity OnCreate. Но пользователь может выйти из другой активности. Если они действительно хотят отправить их обратно на экран входа в систему. Комментируя намерение, когда государство меняет свои результаты на то, что пользователь остался на своем текущем экране – PowerMan2015
, я понял, что мне нужно только добавить этот AuthListener один раз или мне нужно повторить его для каждого действия? – PowerMan2015