繁体   English   中英

Firebase电子邮件用户身份验证

[英]Firebase email user authentication

`我正在尝试从用户动态提取电子邮件以创建帐户,但是Firebase不断返回电子邮件错误...我想知道是否可以动态提取电子邮件,或者您必须对电子邮件和密码进行硬编码。

final EditText email = (EditText)findViewById(R.id.new_email);
    final String newEmail = email.getText().toString();
    final EditText password = (EditText)findViewById(R.id.new_password);
    final String newPass = password.getText().toString();
    final EditText username = (EditText)findViewById(R.id.full_name);
    final String userName = username.getText().toString();


 @Override
        public void onClick(View v){
            rootRef.createUser(newEmail,newPass,new Firebase.ValueResultHandler<Map<String,Object>>(){
                @Override
                public void onSuccess(Map<String,Object> result){
                    rootRef.child("users").child(userName).child("User Name").setValue(userName);
                    rootRef.authWithPassword(newEmail,newPass,new Firebase.AuthResultHandler(){
                        @Override
                        public void onAuthenticated(AuthData authData){
                            Intent a = new Intent(CreateAccount.this,userHome.class);
                            startActivity(a);
                        }
                        @Override
                        public void onAuthenticationError(FirebaseError firebaseError){
                            text1.setText("An error occurred.Please try again");
                        }
                    });
                }
                @Override
                public void onError(FirebaseError firebaseError){
                    Fragment createAccount = new Fragment();
                    getSupportFragmentManager().beginTransaction().add(R.id.sign_up_fail,createAccount).commit();
                    switch (firebaseError.getCode()){
                        case FirebaseError.EMAIL_TAKEN:
                            text1.setText("That Email is already taken");
                            break;
                        case FirebaseError.INVALID_EMAIL:
                            text1.setText("That Email is invalid");
                            break;
                        case FirebaseError.NETWORK_ERROR:
                            text1.setText("Network Error.Check your connection.");
                    }
                }
            });
        }
    });

您可能已经发布了Firebase返回的错误。

您无需对电子邮件或密码进行硬编码,请查看其教程页面以进行android用户身份验证: https : //www.firebase.com/docs/android/guide/user-auth.html

*编辑*

这是个人代码示例,可能会为您提供帮助。

referencia.createUser(email.getText().toString(), senha.getText().toString(), new Firebase.ValueResultHandler<Map<String, Object>>()
    {
        @Override
        public void onSuccess(Map<String, Object> result)

我目前在功能齐全的应用程序上使用它。 如果您的计算机不工作,则可以发送错误消息。

暂无
暂无

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

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