gpt4 book ai didi

java - 匿名身份验证注销后 FirebaseUser 不为 null

转载 作者:行者123 更新时间:2023-12-02 02:07:04 26 4
gpt4 key购买 nike

我的应用中有 2 个 Activity 。我还有一个登录按钮,单击该按钮时将调用此方法:

private void signIn() {
firebaseAuth.signInAnonymously().addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
goToSecondActivity();
}
}
});
}

这是我的goToSecondActivity()方法:

private void goToSecondActivity() {
startActivity(new Intent(FirstActivity.this, SecondActivity.class));
finish();
}

official doc 中所述,在 onStart() 中,我检查 firebaseUser 对象是否为空,如下所示:

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
goToMapActivity();
}

在第二个 Activity 中,我尝试获取用户的 uid,如下所示:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

如果我尝试打印这个 uid,一切正常,uid 被打印。如果我尝试注销(在 SecondActivity 中)并再次登录,则会生成一个新的 uid,这是正确的。问题是,如果我再次注销并卸载应用程序并再次启动它,即使我等待 5 小时,也会使用旧用户。

我该如何解决这个问题,这样如果我退出,下次我使用我的应用程序时将使用最后生成的用户而不是非常旧的用户?

最佳答案

这是因为Android 6有自动备份功能。如果您不希望备份数据或者如果您想要包含或排除某些资源。这不是一个错误。

您可以找到更多信息here

简而言之,为了避免这种行为,有必要将 android:allowBackup="false"android:fullBackupContent="false" 放入 manifest.xml

关于java - 匿名身份验证注销后 FirebaseUser 不为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622674/

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