繁体   English   中英

Firebase - 电子邮件验证邮件不起作用 - 发生内部错误。 [ USER_NOT_FOUND ]

[英]Firebase - Email Verification Mail Not Working - An internal error has occurred. [ USER_NOT_FOUND ]

我正在尝试在用户注册成功后发送验证电子邮件。 这给了我错误An internal error has occurred. [ USER_NOT_FOUND ] An internal error has occurred. [ USER_NOT_FOUND ] 这是我目前拥有的代码 -

public void signUpUser(View view){

    EditText mailEditText = (EditText) findViewById(R.id.editText);
    EditText pwdEditTet = (EditText) findViewById(R.id.editText2);


    String email = mailEditText.getText().toString();
    String password = pwdEditTet.getText().toString();

    Log.d("Info",email);
    Log.d("Info",password);

    mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            try {
                AuthResult result = task.getResult();

                Log.d("Sign up", "createUserWithEmail:onComplete:" + task.isSuccessful());


                // 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()) {
                    Toast.makeText(MainActivity.this, R.string.auth_failed,
                            Toast.LENGTH_SHORT).show();
                }else{
                    Log.d("Sign up", "Sending verification email");
                    // Sending the verification email
                    //FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

                    mAuth.getCurrentUser().sendEmailVerification()
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        Log.d("Email Sent", "Verification Email sent.");
                                    }else{
                                        Log.d("Email Sent",task.getException().getLocalizedMessage());
                                    }
                                }
                            });
                }
            } catch (Exception e){
                Toast.makeText(MainActivity.this,R.string.user_exist,Toast.LENGTH_SHORT).show();
                Log.e("Exception",e.getLocalizedMessage());
            }
        }
    });
}

这是正在打印的日志-

10-11 10:10:50.372 31518-31518/au.com.savedme D/Sign up: Sending verification email
10-11 10:10:51.438 31518-31518/au.com.savedme D/Email Sent: An internal error has occurred. [ USER_NOT_FOUND ]
10-11 10:11:00.429 31518-31538/au.com.savedme W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

请看一看,如果我在这里做错了什么,请告诉我。

我也遇到了同样的问题,我发现这背后的原因是,如果您使用已经创建的同一用户尝试此代码,然后将其从 firebase 控制台中删除,它将无法正常工作。

尝试使用您从未尝试过的新电子邮件地址,它会起作用。

请注意, createUserWithEmailAndPassword()不仅创建用户,而且,如果成功,还会使用户登录。当存在已登录用户时进行创建和登录时,似乎存在与签名相关的 Firebase 错误退出并清除前一个用户的缓存。

通过在createUserWithEmailAndPassword()之前调用signOut() ,我能够使您的代码适用于以前登录但后来删除的用户。

参考

我有同样的问题。 我发现, mAuth.getCurrentUser().sendEmailVerification() 在 mAuth.createUserWithEmailAndPassword(email,password) 方法中不起作用。 我在 createUserWithEmailAndPassword(email,password) 方法之外编写了代码,然后我收到了验证电子邮件。 奇怪。

 FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
    if(user!=null){
        user.sendEmailVerification().addOnCompleteListener(MainActivity.this,new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if(task.isSuccessful()){
                    Log.i("Success","Yes");

                }
                else {
                    Log.i("Success","No"+task.getException());
                }
            }
        });
    }

您确定在控制台中启用了电子邮件/密码身份验证吗? 如果没有,您可以转到https://console.firebase.google.com并单击您的项目,单击“身份验证”,然后单击“登录方法”,单击笔图标以启用它。 希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM