如果 Authentication 方法上的完成回呼收到 NSError
引數
不是 nil,表示發生錯誤。派遣至適當的錯誤處理
檢查錯誤代碼,找出常見錯誤,並
特定方法的錯誤。
某些錯誤可以由特定使用者動作解決,例如
登入使用者即可解決 FIRAuthErrorCodeUserTokenExpired
,以及要求使用者提供 FIRAuthErrorCodeWrongPassword
正確的密碼
除 FIRAuthErrorCodeNetworkError
或
FIRAuthErrorCodeTooManyRequests
,正在重試失敗的作業
引數永遠不會成功不假設作業是否成功
生效後,從伺服器端開始
調查或記錄錯誤時,請查看 userInfo
字典。
FIRAuthErrorNameKey
包含可允許的跨平台錯誤名稱字串
用來識別錯誤
NSLocalizedDescriptionKey
包含錯誤的說明。這個
說明是供開發人員使用,而不是使用者。
NSUnderlyingErrorKey
包含導致錯誤的錯誤
問題。
除了上述主要欄位以外,您也可以在
userInfo
字典可協助您診斷錯誤。
所有 API 方法通用的錯誤代碼
程式碼 |
意義 |
FIRAuthErrorCodeNetworkError |
表示作業期間發生網路錯誤。 |
FIRAuthErrorCodeUserNotFound |
表示找不到使用者帳戶。如果使用者帳戶遭到刪除,就可能發生這種情況。 |
FIRAuthErrorCodeUserTokenExpired |
表示目前使用者的權杖已過期,例如使用者可能已在其他裝置上變更帳戶密碼。您必須提示使用者在這部裝置上重新登入。 |
FIRAuthErrorCodeTooManyRequests |
表示在呼叫端裝置對 Firebase Authentication 伺服器發出異常數量的要求後,該要求已經遭到封鎖。請稍後再試。 |
FIRAuthErrorCodeInvalidAPIKey |
表示應用程式已設定無效的 API 金鑰。 |
FIRAuthErrorCodeAppNotAuthorized |
表示應用程式無權透過提供的 API 金鑰使用 Firebase 驗證。前往 Google API 控制台,查看您目前使用的 API 金鑰憑證分頁,確認應用程式的軟體包 ID 已加入許可清單。 |
FIRAuthErrorCodeKeychainError |
表示存取鑰匙圈時發生錯誤。NSError.userInfo 字典中的 NSLocalizedFailureReasonErrorKey 和 NSUnderlyingErrorKey 欄位會針對遇到的錯誤提供更多資訊。 |
FIRAuthErrorCodeInternalError |
表示發生內部錯誤。請使用整個 NSError 物件回報錯誤。 |
方法專屬的錯誤代碼
FIRAuth
feedProvidersForEmail:complete:
程式碼 |
意義 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
signInWithEmail:password:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示電子郵件和密碼帳戶尚未啟用。請前往 Firebase 控制台的「驗證」專區啟用。 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
FIRAuthErrorCodeWrongPassword |
表示使用者嘗試以錯誤的密碼登入。 |
signInWithCredential:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeInvalidCredential |
表示提供的憑證無效。如果訂單已過期或格式錯誤,就有可能會發生這種情況。 |
FIRAuthErrorCodeInvalidEmail |
如果憑證是 EmailPasswordAuthCredential 類型,表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeOperationNotAllowed |
表示帳戶並未啟用由憑證所代表的識別資訊提供者。請前往 Firebase 控制台的「驗證」專區啟用。 |
FIRAuthErrorCodeEmailAlreadyInUse |
指出由憑證所聲明的電子郵件 (例如 Facebook 存取權杖中的電子郵件) 目前已有人使用,因此無法以這個登入方式進行驗證。針對這位使用者的電子郵件呼叫 fetchProvidersForEmail ,然後提示使用者使用系統傳回的任一登入服務供應商登入。只有在「每個電子郵件地址一個帳戶」的情況下,系統才會擲回這個錯誤。設定已在 Firebase 控制台的「Authentication」設定中啟用。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
FIRAuthErrorCodeWrongPassword |
表示使用者嘗試以錯誤的密碼登入 (如果憑證類型為 EmailPasswordAuthCredential )。 |
SignInAnonymouslyWithComplete:
程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示匿名帳戶尚未啟用。請前往 Firebase 控制台的「驗證」專區啟用。 |
signInWithCustomToken:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeInvalidCustomToken |
表示自訂權杖的驗證錯誤。 |
FIRAuthErrorCodeCustomTokenMismatch |
表示服務帳戶和 API 金鑰分屬不同的專案。 |
createUserWithEmail:password:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示用來註冊的電子郵件地址已存在。請呼叫 fetchProvidersForEmail 來檢查這類使用者使用的登入機制,並提示使用者透過其中一種機制登入。 |
FIRAuthErrorCodeOperationNotAllowed |
表示電子郵件和密碼帳戶尚未啟用。請前往 Firebase 控制台的 Authentication 部分啟用。 |
FIRAuthErrorCodeWeakPassword |
表示嘗試設定的密碼強度太弱。NSError.userInfo 字典物件中的 NSLocalizedFailureReasonErrorKey 欄位會包含更多向使用者顯示的詳細說明。 |
登出:
程式碼 |
意義 |
FIRAuthErrorCodeKeychainError |
存取鑰匙圈時發生錯誤。NSError.userInfo 字典中的 NSLocalizedFailureReasonErrorKey 和 NSUnderlyingErrorKey 欄位會針對遇到的錯誤提供更多資訊。 |
FIRUser
FIRUser 作業的常見錯誤
程式碼 |
意義 |
FIRAuthErrorCodeInvalidUserToken |
表示保留工作階段資訊的已登入使用者更新權杖無效。您必須提示使用者在這部裝置上重新登入。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用,必須於 Firebase 控制台的「使用者」面板重新啟用後才能再次使用。 |
reauthenticateWithCredential:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeInvalidCredential |
表示提供的憑證無效。如果訂單已過期或格式錯誤,就有可能會發生這種情況。 |
FIRAuthErrorCodeInvalidEmail |
如果憑證是 EmailPasswordAuthCredential 類型,表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeWrongPassword |
表示使用者嘗試以錯誤的密碼重新驗證 (如果憑證類型為 EmailPasswordAuthCredential )。 |
FIRAuthErrorCodeUserMismatch |
表示已嘗試以非目前使用者的使用者重新驗證。 |
FIRAuthErrorCodeOperationNotAllowed |
表示帳戶並未啟用由憑證所代表的識別資訊提供者。請前往 Firebase 控制台的「驗證」專區啟用。 |
FIRAuthErrorCodeEmailAlreadyInUse |
指出由憑證所聲明的電子郵件 (例如 Facebook 存取權杖中的電子郵件) 目前已有人使用,因此無法以這個登入方式重新驗證。針對這位使用者的電子郵件呼叫 fetchProvidersForEmail ,然後提示使用者使用系統傳回的任一登入服務供應商登入。只有在「每個電子郵件地址一個帳戶」的情況下,系統才會擲回這個錯誤。設定已在 Firebase 控制台的「Authentication」設定中啟用。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
updateEmail:complete:
程式碼 |
意義 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示另一個帳戶已使用這個電子郵件地址。 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新使用者的電子郵件屬於安全性敏感作業,使用者必須近期登入才能進行。此錯誤表示使用者最近沒有登入一段時間。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion: ,重新驗證使用者。 |
updatePassword:complete:
程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示管理員已停用使用指定識別資訊提供者的登入功能。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新使用者密碼屬於安全性敏感作業,使用者必須近期登入才能進行。此錯誤表示使用者最近沒有登入一段時間。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion: ,重新驗證使用者。 |
FIRAuthErrorCodeWeakPassword |
表示嘗試設定的密碼強度太弱。NSError.userInfo 字典物件中的 NSLocalizedFailureReasonErrorKey 欄位會包含更多向使用者顯示的詳細說明。 |
linkWithCredential:自動完成:
程式碼 |
意義 |
FIRAuthErrorCodeProviderAlreadyLinked |
表示嘗試連結已連結至此帳戶類型的提供者。 |
FIRAuthErrorCodeCredentialAlreadyInUse |
表示嘗試連結的憑證已連結至其他 Firebase 帳戶。 |
FIRAuthErrorCodeOperationNotAllowed |
表示帳戶並未啟用由憑證所代表的識別資訊提供者。請前往 Firebase 控制台的「驗證」專區啟用。 |
這個方法也可能會傳回與 updateEmail:completion:
和
updatePassword:completion:
(FIRUser
)。
LinkFromProvider:complete:
程式碼 |
意義 |
FIRAuthErrorCodeNoSuchProvider |
表示嘗試取消連結未連結到帳戶的供應商。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新電子郵件屬於安全性敏感作業,使用者必須近期登入才能更新。此錯誤表示使用者最近沒有登入一段時間。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion: ,重新驗證使用者。 |
sendEmailVerificationWithComplete:
程式碼 |
意義 |
FIRAuthErrorCodeUserNotFound |
表示找不到使用者帳戶。 |
deleteWithCompleted:
程式碼 |
意義 |
FIRAuthErrorCodeRequiresRecentLogin |
刪除使用者帳戶屬於安全性敏感作業,使用者必須近期登入才能進行。此錯誤表示使用者最近沒有登入一段時間。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion: ,重新驗證使用者。 |