dev*_*v90 0 android android-layout firebase firebase-authentication
以下是我的代码,用于检查用户是否已经登录。
firebaseAuth = FirebaseAuth.getInstance();
currentUser = firebaseAuth.getCurrentUser();
Run Code Online (Sandbox Code Playgroud)
如果当前用户有一些数据,我得到Token
if(currentUser != null){
String token = currentUser.getIdToken(false).getResult().getToken();
}
Run Code Online (Sandbox Code Playgroud)
在这里,它并不总是崩溃,大多数时候都会出现以下错误消息。
Method threw 'java.lang.IllegalStateException' exception.
Task is not yet complete
Run Code Online (Sandbox Code Playgroud)
我使用的代码与 firebase 在其文档中使用的代码完全相同。
有时,当我尝试登录时,它也会崩溃,并出现与我上面分享的相同错误消息。
firebaseAuth.signInAnonymously()
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if(user != null){
String userId = user.getUid();
String token = user.getIdToken(false).getResult().getToken();
}
} else {
Log.w("", "signInAnonymously:failure", task.getException());
}
}
});
Run Code Online (Sandbox Code Playgroud)
您正在尝试直接访问结果。我过去曾遇到过这个问题,并且犯了同样的错误。 String token = currentUser.getIdToken(false).getResult().getToken();
相反,您可以尝试使用下面的代码。希望这可能有帮助
user.getIdToken(true).addOnSuccessListener(new OnSuccessListener<GetTokenResult>() {
@Override
public void onSuccess(GetTokenResult result) {
String idToken = result.getToken();
//Do whatever
Log.d(TAG, "GetTokenResult result = " + idToken);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |