2016-09-21 82 views
0

在使用Firebase 2.x之前,爲了添加新用戶,我們只需在Firebase參考中調用createUser(),傳入電子郵件地址,密碼和ValueResultHandler即可。Firebase 3.0 createUserWithEmailAndPassword()錯誤處理

兩個回調都與ValueResultHandler實現:

  • onSuccess(Map<String, Object> result) {}
  • onError(FirebaseError firebaseError) {}

onError,很容易搶firebaseError來處理錯誤。 像:

if (firebaseError.getCode() == FirebaseError.EMAIL_TAKEN) {} 

但是現在隨着火力地堡SDK 3.0,因爲它是在Documentation page表示事情發生了變化。

但是我們該如何做錯誤處理呢?例如,在這種情況下,電子郵件已被採用?謝謝。

+0

您共享的鏈接是用於驗證用戶,但對於創建用戶仍然可以使用'createUserWithEmailAndPassword()'方法 –

+0

在鏈接的文檔頁面都:登錄和創建一個帳戶 –

+0

好吧,那麼爲了得到異常,你可以使用'task.getException()' –

回答

0

當您調用createUserWithEmailAndPassword時,您可以添加新方法。 您應該添加方法addOnFailureListener。這是一個代碼示例:

mAuth.createUserWithEmailAndPassword(email, password). 
      addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d(TAG, "createUserWithEmail:onComplete:" + task.isSuccessful()); 

        if (!task.isSuccessful()) { 
         Toast.makeText(this, R.string.msg_error_auth, 
           Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }) 
      .addOnFailureListener(this, new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception e) { 
        // Here you get the error type 
        Log.d(TAG + " - On Failure", e.getMessage()); 
      } 
    });