Xử lý lỗi xác thực Nền tảng Apple của Firebase
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Nếu lệnh gọi lại hoàn tất trên các phương thức Authentication nhận được một đối số NSError không phải là nil, thì đã xảy ra lỗi. Để gửi đến logic xử lý lỗi thích hợp trong mã phát hành chính thức, hãy kiểm tra mã lỗi dựa trên các lỗi phổ biến và lỗi cụ thể theo phương thức được liệt kê bên dưới.
Một số lỗi có thể được giải quyết bằng các hành động cụ thể của người dùng, ví dụ: FIRAuthErrorCodeUserTokenExpired có thể được giải quyết bằng cách đăng nhập lại cho người dùng và FIRAuthErrorCodeWrongPassword bằng cách yêu cầu người dùng cung cấp đúng mật khẩu.
Ngoại trừ trường hợp FIRAuthErrorCodeNetworkError hoặc FIRAuthErrorCodeTooManyRequests, việc thử lại một thao tác không thành công với cùng các đối số sẽ không bao giờ thành công. Đừng giả định về việc liệu thao tác đã có hiệu lực ở phía máy chủ hay chưa.
Khi điều tra hoặc ghi nhật ký lỗi, hãy xem từ điển userInfo.
FIRAuthErrorNameKey chứa một chuỗi tên lỗi trên nhiều nền tảng có thể dùng để xác định lỗi.
NSLocalizedDescriptionKey chứa nội dung mô tả về lỗi. Nội dung mô tả này dành cho nhà phát triển chứ không phải người dùng.
NSUnderlyingErrorKey chứa lỗi cơ bản gây ra lỗi trong câu hỏi, nếu có lỗi cơ bản.
Ngoài các trường chính nêu trên, có thể có những trường khác trong từ điển userInfo mà bạn có thể thấy hữu ích khi chẩn đoán lỗi.
Mã lỗi chung cho tất cả các phương thức API
Mã
Ý nghĩa
FIRAuthErrorCodeNetworkError
Cho biết đã xảy ra lỗi mạng trong quá trình hoạt động.
FIRAuthErrorCodeUserNotFound
Cho biết không tìm thấy tài khoản người dùng. Điều này có thể xảy ra nếu tài khoản người dùng đã bị xoá.
FIRAuthErrorCodeUserTokenExpired
Cho biết mã thông báo của người dùng hiện tại đã hết hạn, ví dụ: người dùng có thể đã thay đổi mật khẩu tài khoản trên một thiết bị khác. Bạn phải nhắc người dùng đăng nhập lại trên thiết bị này.
FIRAuthErrorCodeTooManyRequests
Cho biết rằng yêu cầu đã bị chặn sau khi thiết bị gọi thực hiện một số lượng yêu cầu bất thường đến các máy chủ Firebase Authentication. Hãy thử lại sau giây lát.
FIRAuthErrorCodeInvalidAPIKey
Cho biết ứng dụng đã được định cấu hình bằng một khoá API không hợp lệ.
FIRAuthErrorCodeAppNotAuthorized
Cho biết Ứng dụng không được phép sử dụng Xác thực Firebase bằng Khoá API đã cung cấp. Hãy chuyển đến Google API Console và kiểm tra trong thẻ thông tin đăng nhập để đảm bảo rằng Khoá API mà bạn đang sử dụng có mã nhận dạng gói của ứng dụng trong danh sách cho phép.
FIRAuthErrorCodeKeychainError
Cho biết đã xảy ra lỗi khi truy cập vào chuỗi khoá. Các trường NSLocalizedFailureReasonErrorKey và NSUnderlyingErrorKey trong từ điển NSError.userInfo sẽ chứa thêm thông tin về lỗi gặp phải.
FIRAuthErrorCodeInternalError
Cho biết đã xảy ra lỗi nội bộ. Vui lòng báo cáo lỗi bằng toàn bộ đối tượng NSError.
Mã lỗi dành riêng cho phương thức
FIRAuth
fetchProvidersForEmail:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng.
signInWithEmail:password:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng các tài khoản email và mật khẩu không được bật. Bật các phương thức này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Phương thức đăng nhập).
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng.
FIRAuthErrorCodeUserDisabled
Cho biết tài khoản của người dùng bị vô hiệu hoá.
FIRAuthErrorCodeWrongPassword
Cho biết người dùng đã cố gắng đăng nhập bằng mật khẩu không chính xác.
signInWithCredential:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidCredential
Cho biết thông tin đăng nhập được cung cấp là không hợp lệ. Điều này có thể xảy ra nếu mã thông báo đã hết hạn hoặc có định dạng không đúng.
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential.
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng các tài khoản có nhà cung cấp dịch vụ danh tính do thông tin đăng nhập đại diện không được bật. Bật các phương thức này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Phương thức đăng nhập).
FIRAuthErrorCodeEmailAlreadyInUse
Cho biết địa chỉ email được xác nhận bởi thông tin đăng nhập (ví dụ: email trong mã truy cập Facebook) đã được một tài khoản hiện có sử dụng và không thể xác thực bằng phương thức đăng nhập này. Gọi fetchProvidersForEmail để lấy email của người dùng này, sau đó nhắc họ đăng nhập bằng một trong các nhà cung cấp dịch vụ đăng nhập được trả về. Lỗi này sẽ chỉ xảy ra nếu bạn bật chế độ "Một tài khoản cho mỗi địa chỉ email" trong bảng điều khiển Firebase (chuyển đến thẻ Cài đặt > Xác thực > Bảo mật).
FIRAuthErrorCodeUserDisabled
Cho biết tài khoản của người dùng bị vô hiệu hoá.
FIRAuthErrorCodeWrongPassword
Cho biết người dùng đã tìm cách đăng nhập bằng mật khẩu không chính xác, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential.
signInAnonymouslyWithCompletion:
Mã
Ý nghĩa
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng tài khoản ẩn danh không được bật. Bật các phương thức này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Phương thức đăng nhập).
signInWithCustomToken:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidCustomToken
Cho biết lỗi xác thực với mã thông báo tuỳ chỉnh.
FIRAuthErrorCodeCustomTokenMismatch
Cho biết tài khoản dịch vụ và khoá API thuộc các dự án khác nhau.
createUserWithEmail:password:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng.
FIRAuthErrorCodeEmailAlreadyInUse
Cho biết email được dùng để đăng ký đã tồn tại. Gọi fetchProvidersForEmail để kiểm tra xem người dùng đã sử dụng cơ chế đăng nhập nào và nhắc người dùng đăng nhập bằng một trong các cơ chế đó.
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng các tài khoản email và mật khẩu không được bật. Bật các phương thức này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Phương thức đăng nhập).
FIRAuthErrorCodeWeakPassword
Cho biết một nỗ lực đặt mật khẩu được coi là quá yếu. Trường NSLocalizedFailureReasonErrorKey trong đối tượng từ điển NSError.userInfo sẽ chứa nội dung giải thích chi tiết hơn mà người dùng có thể thấy.
signOut:
Mã
Ý nghĩa
FIRAuthErrorCodeKeychainError
Cho biết đã xảy ra lỗi khi truy cập vào chuỗi khoá. Các trường NSLocalizedFailureReasonErrorKey và NSUnderlyingErrorKey trong từ điển NSError.userInfo sẽ chứa thêm thông tin về lỗi gặp phải.
FIRUser
Các lỗi thường gặp đối với hoạt động FIRUser
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidUserToken
Cho biết mã làm mới của người dùng đã đăng nhập (chứa thông tin phiên) không hợp lệ. Bạn phải nhắc người dùng đăng nhập lại trên thiết bị này.
FIRAuthErrorCodeUserDisabled
Cho biết tài khoản của người dùng đã bị vô hiệu hoá và không thể sử dụng nữa cho đến khi được bật lại trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Người dùng).
reauthenticateWithCredential:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeInvalidCredential
Cho biết thông tin đăng nhập được cung cấp là không hợp lệ. Điều này có thể xảy ra nếu mã thông báo đã hết hạn hoặc có định dạng không đúng.
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential.
FIRAuthErrorCodeWrongPassword
Cho biết người dùng đã cố gắng xác thực lại bằng mật khẩu không chính xác, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential.
FIRAuthErrorCodeUserMismatch
Cho biết rằng đã có một nỗ lực xác thực lại với một người dùng không phải là người dùng hiện tại.
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng các tài khoản có nhà cung cấp dịch vụ danh tính do thông tin đăng nhập đại diện không được bật. Bật các chế độ này trong bảng điều khiển Firebase (chuyển đến phần Bảo mật > Xác thực).
FIRAuthErrorCodeEmailAlreadyInUse
Cho biết địa chỉ email do thông tin đăng nhập xác nhận (ví dụ: địa chỉ email trong mã truy cập Facebook) đã được một tài khoản hiện có sử dụng và không thể xác thực lại bằng phương thức đăng nhập này. Gọi fetchProvidersForEmail để lấy email của người dùng này, sau đó nhắc họ đăng nhập bằng một trong các nhà cung cấp dịch vụ đăng nhập được trả về. Lỗi này sẽ chỉ xảy ra nếu bạn bật chế độ "Một tài khoản cho mỗi địa chỉ email" trong bảng điều khiển Firebase (chuyển đến thẻ Cài đặt > Xác thực > Bảo mật).
FIRAuthErrorCodeUserDisabled
Cho biết tài khoản của người dùng bị vô hiệu hoá.
updateEmail:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeEmailAlreadyInUse
Cho biết một tài khoản khác đã sử dụng email này.
FIRAuthErrorCodeInvalidEmail
Cho biết địa chỉ email có định dạng không đúng.
FIRAuthErrorCodeRequiresRecentLogin
Việc cập nhật email của người dùng là một thao tác nhạy cảm về bảo mật và yêu cầu người dùng phải đăng nhập gần đây. Lỗi này cho biết người dùng chưa đăng nhập trong thời gian gần đây. Để giải quyết, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser.
updatePassword:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeOperationNotAllowed
Cho biết quản trị viên đã tắt tính năng đăng nhập bằng nhà cung cấp danh tính được chỉ định.
FIRAuthErrorCodeRequiresRecentLogin
Việc cập nhật mật khẩu của người dùng là một thao tác nhạy cảm về bảo mật và yêu cầu người dùng đăng nhập gần đây. Lỗi này cho biết người dùng chưa đăng nhập trong thời gian gần đây. Để giải quyết, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser.
FIRAuthErrorCodeWeakPassword
Cho biết một nỗ lực đặt mật khẩu được coi là quá yếu. Trường NSLocalizedFailureReasonErrorKey trong đối tượng từ điển NSError.userInfo sẽ chứa nội dung giải thích chi tiết hơn mà người dùng có thể thấy.
linkWithCredential:completion:
Mã
Ý nghĩa
FIRAuthErrorCodeProviderAlreadyLinked
Cho biết một nỗ lực liên kết một nhà cung cấp thuộc loại đã được liên kết với tài khoản này.
FIRAuthErrorCodeCredentialAlreadyInUse
Cho biết một nỗ lực liên kết với một thông tin đăng nhập đã được liên kết với một tài khoản Firebase khác.
FIRAuthErrorCodeOperationNotAllowed
Cho biết rằng các tài khoản có nhà cung cấp dịch vụ danh tính do thông tin đăng nhập đại diện không được bật. Bật các phương thức này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Xác thực > Phương thức đăng nhập).
Cho biết một nỗ lực huỷ liên kết một nhà cung cấp không được liên kết với tài khoản.
FIRAuthErrorCodeRequiresRecentLogin
Cập nhật email là một thao tác nhạy cảm về bảo mật, đòi hỏi người dùng phải đăng nhập gần đây. Lỗi này cho biết người dùng chưa đăng nhập trong thời gian gần đây. Để giải quyết, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser.
sendEmailVerificationWithCompletion:
Mã
Ý nghĩa
FIRAuthErrorCodeUserNotFound
Cho biết không tìm thấy tài khoản người dùng.
deleteWithCompletion:
Mã
Ý nghĩa
FIRAuthErrorCodeRequiresRecentLogin
Xoá tài khoản người dùng là một thao tác nhạy cảm về bảo mật và yêu cầu người dùng phải đăng nhập gần đây. Lỗi này cho biết người dùng chưa đăng nhập trong thời gian gần đây. Để giải quyết, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2026-06-28 UTC."],[],[]]