2016-04-04 84 views
0

`我試圖從用戶動態地提取電子郵件以創建帳戶,但Firebase不斷返回電子郵件錯誤......我想知道是否可以動態提取電子郵件,或者您必須硬編碼電子郵件和密碼。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."); 
        } 
       } 
      }); 
     } 
    }); 
+1

請將您的代碼發佈爲文本,而不是圖片。 – SubliemeSiem

回答

0

您可以發佈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) 

我目前在一個功能齊全的應用程序上使用它。如果你的工作不正常,你可以發送你的錯誤信息。

+0

在指南中,他們通過寫入實際電子郵件來添加電子郵件,例如: –

+0

,如:ref.authWithPassword {「[email protected]」,「passwordexample」,Firebase.ValueResultHandler >(){。 ..}} –

+0

輸入是一個字符串,您必須像處理任何文本區域一樣對待它。 – Selhar

相關問題