首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防火墙-电子邮件验证邮件不工作-内部错误已经发生。[ USER_NOT_FOUND ]

防火墙-电子邮件验证邮件不工作-内部错误已经发生。[ USER_NOT_FOUND ]
EN

Stack Overflow用户
提问于 2016-10-11 05:00:12
回答 3查看 1.4K关注 0票数 7

我试图发送一个验证电子邮件后,成功注册的用户。这给了我错误的An internal error has occurred. [ USER_NOT_FOUND ]。这是我目前的密码-

代码语言:javascript
复制
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());
            }
        }
    });
}

这是正在打印的原木-

代码语言:javascript
复制
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.

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-28 11:24:46

我也有同样的问题,我在后面发现的原因是,如果您正在用您已经创建的同一个用户尝试这段代码,然后将其从firebase控制台中删除,它将无法工作。

尝试新的电子邮件地址,你没有尝试过一次,它将工作。

请注意,createUserWithEmailAndPassword()不仅创建了用户,而且如果成功的话,也会注册用户。当创建和登录发生在有一个现有的登录用户时,似乎存在一个与为前一个用户注销和清除缓存有关的Firebase错误。 我能够通过在signOut()之前调用createUserWithEmailAndPassword(),使您的代码能够为先前登录的、后来删除的用户工作。

参考文献

票数 2
EN

Stack Overflow用户

发布于 2016-10-12 06:32:08

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

代码语言:javascript
复制
 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());
                }
            }
        });
    }
票数 1
EN

Stack Overflow用户

发布于 2016-10-11 10:24:11

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39970755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档