我正在为我的项目使用 Firebase 身份验证。一切都很好,但是当我第一次从Playstore安装该应用程序时,我的代码不起作用,它直接将用户发送到主要活动。但是,如果我从他们注销,它就可以正常工作。当我第一次从 android 工作室安装该应用程序时,它也可以正常工作,只有在从 Play 商店安装应用程序后,此验证才不起作用。我很困惑我的代码出了什么问题,几个月前它工作正常,但现在它不起作用。可以请一些人帮助我。在这种情况下,我什至无法在此处检查"user"的值是什么,因为我无法使用调试工具,因为它仅在从 Play 商店安装应用程序后才会发生。如果有人对此问题有任何想法,请提供帮助。
@Override
protected void onStart() {
super.onStart();
FirebaseAuth mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
if (user != null) {
sendUserToMainActivity();
}
}
使用 Toast 有效地调试您的 Play 商店版本
if (user != null) {
Toast.makeText(this, user.getUid(), Toast.LENGTH_SHORT).show();
sendUserToMainActivity();
}
并使用您的 Firebase 控制台检查该 Uid。
我想知道当前用户的设置方式(或更可能何时(是否发生了变化。您可以尝试该应用程序是否可以与身份验证状态侦听器正常工作吗?像这样:
@Override
protected void onStart() {
super.onStart();
FirebaseAuth mAuth = FirebaseAuth.getInstance();
mAuth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth auth) {
FirebaseUser user = auth.getCurrentUser();
if (user != null) {
sendUserToMainActivity();
}
}
});
}
如果这有效,则在onStart
运行时似乎尚未设置FirebaseAuth.getInstance().getCurrentUser()
。