Ber*_*anz 1 java android firebase firebase-authentication
我使用 Firebase 允许用户使用其 Facebook 帐户或 Google 帐户登录。我已允许在同一电子邮件地址下创建多个帐户。
这是使用 Facebook 帐户成功登录后将用户发送到下一个屏幕的方法:
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Intent intent = new Intent(MainActivity.this, Profile.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
overridePendingTransition(0, 0);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
如果用户使用 Google 帐户登录,则可以使用以下方法将其发送到下一个屏幕:
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Intent intent = new Intent(MainActivity.this, Profile.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
overridePendingTransition(0, 0);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
所以一切正常,除了当我使用 时user.getEmail(),它在使用我的 Facebook 帐户登录时返回 null,但在使用我的 Google 帐户登录时返回正确的电子邮件地址。我正在使用同一电子邮件地址登录这两个帐户。我该如何解决这个问题?