Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
處理 Firebase Apple 平台驗證錯誤
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
如果 Authentication 方法的完成回呼收到非空值的 NSError 引數,表示發生錯誤。如要在正式版程式碼中派送至適當的錯誤處理邏輯,請根據下方列出的常見錯誤和方法專屬錯誤檢查錯誤代碼。
某些錯誤可透過特定使用者動作解決,例如 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
fetchProvidersForEmail:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
signInWithEmail:password:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示電子郵件和密碼帳戶未啟用。在 Firebase 控制台中啟用這些方法 (依序前往「安全性」 >「驗證」 >「登入方式」分頁)。 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
FIRAuthErrorCodeWrongPassword |
表示使用者嘗試登入時輸入了錯誤密碼。 |
signInWithCredential:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidCredential |
表示提供的憑證無效。如果憑證已過期或格式有誤,就可能發生這種情況。 |
FIRAuthErrorCodeInvalidEmail |
如果憑證類型為 EmailPasswordAuthCredential,表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeOperationNotAllowed |
表示以憑證代表的識別資訊提供者帳戶未啟用。在 Firebase 控制台中啟用這些方法 (依序前往「安全性」 >「驗證」 >「登入方式」分頁)。 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示憑證聲明的電子郵件 (例如 Facebook 存取權杖中的電子郵件) 已由現有帳戶使用,無法透過這個登入方法進行驗證。針對這位使用者的電子郵件呼叫 fetchProvidersForEmail,然後提示他們使用傳回的任何登入供應商登入。只有在Firebase控制台中啟用「每個電子郵件地址只能有一個帳戶」時,系統才會擲回這項錯誤 (依序前往「安全性」>「驗證」>「設定」分頁標籤)。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
FIRAuthErrorCodeWrongPassword |
如果憑證類型為 EmailPasswordAuthCredential,表示使用者嘗試登入時輸入的密碼有誤。 |
signInAnonymouslyWithCompletion:
| 程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示未啟用匿名帳戶。在 Firebase 控制台中啟用這些方法 (依序前往「安全性」 >「驗證」 >「登入方式」分頁)。 |
signInWithCustomToken:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidCustomToken |
表示自訂權杖發生驗證錯誤。 |
FIRAuthErrorCodeCustomTokenMismatch |
表示服務帳戶和 API 金鑰屬於不同專案。 |
createUserWithEmail:password:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示嘗試註冊時使用的電子郵件地址已存在。呼叫 fetchProvidersForEmail 檢查使用者使用的登入機制,並提示使用者透過其中一種機制登入。 |
FIRAuthErrorCodeOperationNotAllowed |
表示電子郵件和密碼帳戶未啟用。在 Firebase 控制台中啟用這些方法 (依序前往「安全性」 >「驗證」 >「登入方式」分頁)。 |
FIRAuthErrorCodeWeakPassword |
表示您嘗試設定的密碼強度不足。NSError.userInfo 字典物件中的 NSLocalizedFailureReasonErrorKey 欄位會包含更詳細的說明,可向使用者顯示。 |
signOut:
| 程式碼 |
意義 |
FIRAuthErrorCodeKeychainError |
指出存取鑰匙圈時發生錯誤。NSError.userInfo 字典中的 NSLocalizedFailureReasonErrorKey 和 NSUnderlyingErrorKey 欄位會包含更多有關所發生錯誤的資訊。 |
FIRUser
FIRUser 作業的常見錯誤
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidUserToken |
表示已登入使用者的更新權杖 (其中包含工作階段資訊) 無效。你必須提示使用者在該裝置上重新登入。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用,必須在 Firebase 控制台中重新啟用 (依序前往「Security」(安全性) >「Authentication」(驗證) >「Users」(使用者) 分頁標籤),才能繼續使用。 |
reauthenticateWithCredential:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeInvalidCredential |
表示提供的憑證無效。如果憑證已過期或格式有誤,就可能發生這種情況。 |
FIRAuthErrorCodeInvalidEmail |
如果憑證類型為 EmailPasswordAuthCredential,表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeWrongPassword |
如果憑證類型為 EmailPasswordAuthCredential,表示使用者嘗試以不正確的密碼重新驗證。 |
FIRAuthErrorCodeUserMismatch |
表示系統嘗試使用非目前使用者的身分重新驗證。 |
FIRAuthErrorCodeOperationNotAllowed |
表示以憑證代表的識別資訊提供者帳戶未啟用。在 Firebase 控制台中啟用這些方法 (依序選取「安全性」 >「驗證」)。 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示憑證聲明的電子郵件 (例如 Facebook 存取權杖中的電子郵件) 已由現有帳戶使用,無法透過這個登入方法重新驗證。針對這位使用者的電子郵件呼叫 fetchProvidersForEmail,然後提示他們使用傳回的任何登入供應商登入。只有在Firebase控制台中啟用「每個電子郵件地址只能有一個帳戶」時,系統才會擲回這項錯誤 (依序前往「安全性」>「驗證」>「設定」分頁標籤)。 |
FIRAuthErrorCodeUserDisabled |
表示使用者帳戶已停用。 |
updateEmail:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeEmailAlreadyInUse |
表示電子郵件地址已用於其他帳戶。 |
FIRAuthErrorCodeInvalidEmail |
表示電子郵件地址格式錯誤。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新使用者電子郵件地址是安全性敏感操作,需要使用者最近登入帳戶。這項錯誤表示使用者最近未登入。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion:,重新驗證使用者。 |
updatePassword:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeOperationNotAllowed |
表示管理員已停用透過指定身分識別提供者登入的功能。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新使用者密碼是安全性敏感操作,需要使用者最近登入。這項錯誤表示使用者最近未登入。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion:,重新驗證使用者。 |
FIRAuthErrorCodeWeakPassword |
表示您嘗試設定的密碼強度不足。NSError.userInfo 字典物件中的 NSLocalizedFailureReasonErrorKey 欄位會包含更詳細的說明,可向使用者顯示。 |
linkWithCredential:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeProviderAlreadyLinked |
表示嘗試連結的提供者類型已連結至這個帳戶。 |
FIRAuthErrorCodeCredentialAlreadyInUse |
表示您嘗試連結的憑證已連結至其他 Firebase 帳戶。 |
FIRAuthErrorCodeOperationNotAllowed |
表示以憑證代表的識別資訊提供者帳戶未啟用。在 Firebase 控制台中啟用這些方法 (依序前往「安全性」 >「驗證」 >「登入方式」分頁)。 |
這個方法也可能會傳回與 updateEmail:completion: 和 updatePassword:completion: 相關的錯誤代碼 (位於 FIRUser)。
unlinkFromProvider:completion:
| 程式碼 |
意義 |
FIRAuthErrorCodeNoSuchProvider |
表示嘗試取消連結未連結至帳戶的供應商。 |
FIRAuthErrorCodeRequiresRecentLogin |
更新電子郵件是安全敏感的操作,使用者必須最近登入過帳戶才能執行。這項錯誤表示使用者最近未登入。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion:,重新驗證使用者。 |
sendEmailVerificationWithCompletion:
| 程式碼 |
意義 |
FIRAuthErrorCodeUserNotFound |
表示找不到使用者帳戶。 |
deleteWithCompletion:
| 程式碼 |
意義 |
FIRAuthErrorCodeRequiresRecentLogin |
刪除使用者帳戶是安全性敏感操作,使用者必須最近登入過帳戶,才能執行這項操作。這項錯誤表示使用者最近未登入。如要解決這個問題,請在 FIRUser 上叫用 reauthenticateWithCredential:completion:,重新驗證使用者。 |
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-07-05 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-07-05 (世界標準時間)。"],[],[]]