如何處理新的Firebase SDK中的錯誤以進行身份驗證?在以前的版本中,我可以找到OnAuthenticationError方法,它會給出FirebaseException錯誤,但在新版本中,我看不到這種方法。比方說,我通過電子郵件密碼創建一個用戶,出於某種原因發生異常。我可以看到抓住這個異常的唯一方法是task.getException.getMessage(),並且通過這條消息我檢查各種錯誤消息,然後獲取發生的錯誤。請建議更好的方法或糾正我,如果我失去了一些東西通過電子郵件創建用戶的Firebase例外處理
1
A
回答
1
在新的Firebase中,很多方法返回所謂的Task
。如果你以前在JavaScript中使用過promise,你會發現它們非常相似。
在任務中,你可以得到一些回調:
- 成功監聽器,它被調用一次任務成功
- 失敗的聽衆,這被調用一次任務失敗
- 一完成監聽器,它被調用,一旦任務完成(成功與否)
在你的情況,你正在尋找creating a user故障,那麼:
auth.createUserWithEmailAndPassword(email, password)
.addOnFailureListener(new OnFailureListener() {
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Unable to create user", e);
}
});
例外將是FirebaseAuthException
一個子類,這意味着你可以在它上面調用getErrorCode()
。這會返回一個錯誤代碼。這確實是一個字符串,但形式爲auth/error
,可以在開關盒中輕鬆捕獲。請參閱documentation on creating a user瞭解使用完成偵聽器的示例。
0
主要的例外:
firebaseAuth.createUserWithEmailAndPassword(email, pass)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{
//--If success
}else if (task.getException() instanceof FirebaseAuthUserCollisionException)
{
//If email already registered.
}else if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
//If email are in incorret format
}else if (task.getException() instanceof FirebaseAuthWeakPasswordException) {
//if password not 'stronger'
}else
{
//OTHER THING
}
}
});
相關問題
- 1. Firebase處理電子郵件/通過身份驗證加密嗎?
- 2. 不通過電子郵件通知創建新用戶
- 3. 事實上,Firebase通過電子郵件合併用戶帳戶
- 4. 創建XLS,並通過電子郵件
- 5. Firebase託管 - 電子郵件未通過
- 6. Firebase通過電子郵件獲取uid
- 7. 處理未通過Items_ItemAdd程序處理的電子郵件
- 8. 通過一系列電子郵件創建用戶
- 9. Firebase Android,如何通過電子郵件註銷用戶?
- 10. 通過電子郵件限制Firebase用戶
- 11. 通過電子郵件驗證用戶
- 12. 通過電子郵件激活用戶
- 13. 通過電子郵件搜索用戶
- 14. Cakephp:僅通過電子郵件確認創建成員帳戶
- 15. 如何通過PHP在Cpanel中創建電子郵件帳戶?
- 16. 電子郵件處理與過濾
- 17. .NET電子郵件處理建議
- 18. 動態電子郵件創建和回覆通過電子郵件
- 19. 通過電子郵件laravel(5.3)處理用戶激活的數據庫設置?
- 20. 電子郵件批處理
- 21. Firebase OSX簡單的用電子郵件登錄/通過奇數
- 22. 在例外電子郵件通知期間,Django過濾字段
- 23. 從CodeBehind創建電子郵件帳戶
- 24. 使用私有API通過代碼處理電子郵件帳戶
- 25. 使用Parse.com通過iOS應用創建新用戶時發送電子郵件
- 26. 如何通過Firebase中的UID獲取用戶的電子郵件
- 27. Firebase Auth爲相同的電子郵件創建重複的用戶
- 28. 電子郵件處理用的NodeJS
- 29. 良好的IMAP電子郵件客戶端來處理1000+電子郵件
- 30. 如何創建用戶使用AngularFire2通過電子郵件和密碼登錄
感謝您的答覆。如果我添加onFailureListener然後在overriden onFailure方法中,我得到一個參數java'Exception',其中我只能得到錯誤消息,這個消息我必須遍歷所有幾個預定義的字符串來處理這個異常。我正在尋找一個更好的方法,就像舊的firebase sdk一樣。 –
我確實有錯誤的簽名。我現在在Android Studio中爲您提供了方便。 2.x SDK有一個數字錯誤代碼。處理所有的字符串錯誤代碼沒有太大的不同。 –