Android Firebase只能更新用户电子邮件一次
目前,我正在为我的家庭作业应用程序更新用户电子邮件和密码。 问题是电子邮件只能更新一次。之后,它只提供以下信息:Android Firebase只能更新用户电子邮件一次,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,目前,我正在为我的家庭作业应用程序更新用户电子邮件和密码。 问题是电子邮件只能更新一次。之后,它只提供以下信息: D/FirebaseApp: Notifying auth state listeners. D/FirebaseApp: Notified 1 auth state listeners. (更新密码没有问题。只有电子邮件) FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser(); //从用户处获取身份验证凭据以进
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 1 auth state listeners.
(更新密码没有问题。只有电子邮件)
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
//从用户处获取身份验证凭据以进行重新身份验证//用户Sekarang punya电子邮件
AuthCredential credential=EmailAuthProvider.getCredential(emailCurrent,passCurrent);//当前登录凭据\\
//提示用户重新提供其登录凭据
用户重新验证(凭证)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(getApplicationContext(),“用户重新验证”,Toast.LENGTH\u SHORT.show();
//现在更改您的电子邮件地址\\
//----------------更改电子邮件地址的代码----------\\
FirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
user.updateEmail(email.addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(getApplicationContext(),“用户电子邮件地址已更新”,Toast.LENGTH_SHORT).show();
System.out.println(“电子邮件更新”);
}
}
});
//----------------------------------------------------------\\
}//isSuccessful结束
}//完成时结束
});
期望可以无限制地更新电子邮件。
当前只能更新一次电子邮件。当前的解决方法是让用户登录从firebase实时数据库获取数据。但是,我想知道其他人在使用firebase auth作为登录方法时是否遇到同样的问题如果查看firebase控制台,您在执行更新后是否看到旧电子邮件?是的,我仍然看到旧电子邮件当我签入旧电子邮件时,有一封来自firebaseapp的电子邮件声明“您的登录电子邮件已更改”但此电子邮件仅在第一次更新电子邮件时发送(从第一封电子邮件到第二封电子邮件)。。当再次请求更新电子邮件时,不会向第二封电子邮件发送说明登录电子邮件已更改的电子邮件(第二封电子邮件到第三封电子邮件)。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
// Get auth credentials from the user for re-authentication //User Sekarang punya email
AuthCredential credential = EmailAuthProvider.getCredential(emailCurrent, passCurrent); // Current Login Credentials \\
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "User re-authenticated.", Toast.LENGTH_SHORT).show();
//Now change your email address \\
//----------------Code for Changing Email Address----------\\
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.updateEmail(email).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "User email address updated.", Toast.LENGTH_SHORT).show();
System.out.println("Email Updated");
}
}
});
//----------------------------------------------------------\\
} // End of isSuccessful
} // End of onComplete
});