我已经使用Gmail,Facebook和Twitter实施了Firebase Auth,一开始我无法收到电子邮件,只要我使用Twitter返回的值始终为null
,但经过一些挖掘后我找到了解决方案,现在我我通过单独请求获取用户的电子邮件地址,但我现在如何将此电子邮件添加到Firebase?
protected void handleTwitterSession(TwitterSession session) {
Log.d(TAG, "handleTwitterSession:" + session);
AuthCredential credential = TwitterAuthProvider.getCredential(
session.getAuthToken().token,
session.getAuthToken().secret);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(context, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.e(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
Log.e(TAG, "user:" + task.getResult().getUser().getUid() + " : " + task.getResult().getUser().getDisplayName() + " : "
+ task.getResult().getUser().getEmail() + " : "+ task.getResult().getUser().getPhotoUrl());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.e(TAG, "signInWithCredential", task.getException());
}
}
});
}
以上是我现在使用的方法,无法添加电子邮件,在我的Firebase信息中心上显示电子邮件的空值
答案 0 :(得分:2)
您可以致电user.updateEmail()
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.updateEmail("user@example.com")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User email address updated.");
}
}
});
Here是来自firebase的官方文件