gpt4 book ai didi

android - Android Firebase 的每个 Activity 是否都需要添加一个 AuthStateListener?

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:35 26 4
gpt4 key购买 nike

是不是Android Firebase的每一个activity都需要添加一个AuthStateListener?我在登录 Activity 中添加了 AuthStateListener。我想知道这是否足够?

最佳答案

我觉得没必要。您需要在必须登录环境设置的 Activity 中使用它,或者以这样的方式退出环境清理:

mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull final FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();

if (null != user) {
onSignedInInitialize(user);
} else {
onSignedOutCleanup();
}
}
};

这通常由管理登录过程的 Activity 通过 FirebaseUI 完成。 或使用唯一的 SDK API。

请记住在登录初始化函数中执行用户 reload() 以便管理您从控制台删除用户的情况,由于缓存,应用程序不知道:

private void onSignedInInitialize(FirebaseUser user) {
user.reload();
if (null != user) {
[...]

您需要在所有其他 Activity 中有一个监听器,您需要在这些 Activity 中响应与用户登录、注销或更新相关的事件。

在所有其他 Activity 中,您只需检查用户是否不为空。

if (null != user) { 

user 是从 FirebaseAuth 实例获取的用户

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

通常在您使用监听器的地方,您在 onCreate Activity 方法中创建它,然后在 onResume 中添加它,并在 onPause 中删除它>

    @Override
protected void onResume() {
super.onResume();
if (null != mAuthStateListener) {
mFirebaseAuth.addAuthStateListener(mAuthStateListener);
}
}

@Override
protected void onPause() {
super.onPause();
if (null != mAuthStateListener) {
mFirebaseAuth.removeAuthStateListener(mAuthStateListener);
}
}

关于android - Android Firebase 的每个 Activity 是否都需要添加一个 AuthStateListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com