簡體   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