我已经在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仪表板上它显示了电子邮件的空值
您可以通过致电来更新当前用户的电子邮件地址 user.updateEmail()
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.updateEmail("[email protected]")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User email address updated.");
}
}
});
这是来自firebase的官方文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句