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
        });