Nếu lệnh gọi lại hoàn thành trên Phương thức xác thực nhận được đối số NSError
không phải là 0, 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 so với các lỗi thường gặp và các lỗi cụ thể của phương pháp được liệt kê bên dưới.
Bạn có thể khắc phục một số lỗi bằng một số thao tác cụ thể của người dùng, ví dụ: có thể giải quyết FIRAuthErrorCodeUserTokenExpired
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 mật khẩu phù hợp.
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 bằng các đối số tương tự sẽ không bao giờ thành công. Không giả định về việc liệu thao tác có hiệu lực ở phía máy chủ hay không.
Khi điều tra hoặc ghi nhật ký lỗi, hãy xem lại từ điển userInfo
.
FIRAuthErrorNameKey
chứa chuỗi tên lỗi trên nhiều nền tảng có thể dùng để xác định lỗi.
NSLocalizedDescriptionKey
có chứa thông tin 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 liên quan, nếu có lỗi cơ bản.
Ngoài những trường chính nêu trên, có thể có các 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 thường gặp ở mọi phương thức API
Mã |
Ý nghĩa |
FIRAuthErrorCodeNetworkError |
Cho biết đã xảy ra lỗi mạng trong khi 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 số lượng yêu cầu bất thường đã được thực hiện từ thiết bị gọi đến máy chủ Xác thực Firebase. 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 tính năng Xác thực Firebase bằng Khoá API được cung cấp. Hãy chuyển tới Google API Console và kiểm tra trong thẻ thông tin đăng nhập để đảm bảo khoá API bạn đang sử dụng có mã gói của ứng dụng được đưa vào 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 với toàn bộ đối tượng NSError . |
Mã lỗi cụ thể của phương thức
FIRAuth
findProvidersForEmail:complete:
Mã |
Ý nghĩa |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạng. |
signInWithEmail:mật khẩu:hoàn thành:
Mã |
Ý nghĩa |
FIRAuthErrorCodeOperationNotAllowed |
Cho biết rằng tài khoản email và mật khẩu chưa được bật. Bật các tuỳ chọn này trong phần Xác thực của bảng điều khiển của Firebase. |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạ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ố đăng nhập bằng mật khẩu sai. |
signInWithCredential:hoàn tất:
Mã |
Ý nghĩa |
FIRAuthErrorCodeInvalidCredential |
Cho biết thông tin đăng nhập đã cung cấp không hợp lệ. Điều này có thể xảy ra nếu mã đã hết hạn hoặc không đúng định dạng. |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạ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 danh tính được đại diện bằng thông tin đăng nhập chưa được bật. Bật các tuỳ chọn này trong phần Xác thực của bảng điều khiển của Firebase. |
FIRAuthErrorCodeEmailAlreadyInUse |
Cho biết email được xác nhận bởi thông tin đăng nhập (ví dụ: email trong mã truy cập Facebook) đã được sử dụng bởi một tài khoản hiện có và không thể xác thực được bằng phương pháp đăng nhập này. Gọi fetchProvidersForEmail cho email của người dùng này rồi nhắc họ đăng nhập bằng bất kỳ nhà cung cấp dịch vụ đăng nhập nào được trả về. Lỗi này sẽ chỉ xảy ra nếu bạn bật chế độ cài đặt "Một tài khoản cho mỗi địa chỉ email" trong bảng điều khiển của Firebase trong phần Cài đặt xác thực. |
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ố đă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 . |
signInIdlyWithCompletion:
Mã |
Ý nghĩa |
FIRAuthErrorCodeOperationNotAllowed |
Cho biết tài khoản ẩn danh không được bật. Bật các tuỳ chọn này trong phần Xác thực của bảng điều khiển của Firebase. |
signInWithCustomToken:hoàn tất:
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 về các dự án khác nhau. |
createUserWithEmail:matkhau:Hoàn tất:
Mã |
Ý nghĩa |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạng. |
FIRAuthErrorCodeEmailAlreadyInUse |
Cho biết rằng email 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 tài khoản email và mật khẩu chưa được bật. Bật các tuỳ chọn này trong phần Xác thực trên bảng điều khiển của Firebase. |
FIRAuthErrorCodeWeakPassword |
Cho biết đã cố đặt mộ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 có thể hiển thị cho người dùng. |
đăng xuất:
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 của FIRUser
Mã |
Ý nghĩa |
FIRAuthErrorCodeInvalidUserToken |
Cho biết rằng mã làm mới (chứa thông tin phiên) của người dùng đã đăng nhập 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 còn dùng được nữa cho đến khi được bật lại trong bảng điều khiển Người dùng trên bảng điều khiển của Firebase. |
xác thực lại bằng chứng xác thực:hoàn tất:
Mã |
Ý nghĩa |
FIRAuthErrorCodeInvalidCredential |
Cho biết thông tin đăng nhập đã cung cấp không hợp lệ. Điều này có thể xảy ra nếu mã đã hết hạn hoặc không đúng định dạng. |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạng, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword |
Cho biết người dùng đã cố 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 hệ thống đã cố gắng 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 danh tính được đại diện bằng thông tin đăng nhập chưa được bật. Bật các tuỳ chọn này trong phần Xác thực của bảng điều khiển của Firebase. |
FIRAuthErrorCodeEmailAlreadyInUse |
Cho biết 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 lại bằng phương pháp đăng nhập này. Gọi fetchProvidersForEmail cho email của người dùng này rồi nhắc họ đăng nhập bằng bất kỳ nhà cung cấp dịch vụ đăng nhập nào được trả về. Lỗi này sẽ chỉ xảy ra nếu bạn bật chế độ cài đặt "Một tài khoản cho mỗi địa chỉ email" trong bảng điều khiển của Firebase trong phần Cài đặt xác thực. |
FIRAuthErrorCodeUserDisabled |
Cho biết tài khoản của người dùng bị vô hiệu hoá. |
updateEmail:complete:
Mã |
Ý nghĩa |
FIRAuthErrorCodeEmailAlreadyInUse |
Cho biết email đã được một tài khoản khác sử dụng. |
FIRAuthErrorCodeInvalidEmail |
Cho biết địa chỉ email không đúng định dạng. |
FIRAuthErrorCodeRequiresRecentLogin |
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 gần đây người dùng chưa đăng nhập đủ. Để khắc phục, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |
updateMật khẩu:hoàn tất:
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 đã chỉ định. |
FIRAuthErrorCodeRequiresRecentLogin |
Cập nhật mật khẩu của người dùng là một hoạt động có tính bảo mật cao, đòi hỏi người dùng phải đăng nhập gần đây. Lỗi này cho biết gần đây người dùng chưa đăng nhập đủ. Để khắc phục, 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 đã cố đặt mộ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 có thể hiển thị cho người dùng. |
linkWithCredential:hoàn tất:
Mã |
Ý nghĩa |
FIRAuthErrorCodeProviderAlreadyLinked |
Cho biết thao tác cố gắng liên kết một nhà cung cấp thuộc một loại đã được liên kết với tài khoản này. |
FIRAuthErrorCodeCredentialAlreadyInUse |
Cho biết thao tá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 danh tính được đại diện bằng thông tin đăng nhập chưa được bật. Bật các tuỳ chọn này trong phần Xác thực của bảng điều khiển của Firebase. |
Phương thức này cũng có thể trả về mã lỗi liên kết với updateEmail:completion:
và updatePassword:completion:
trên FIRUser
.
Huỷ liên kếtTừProvider:hoàn tất:
Mã |
Ý nghĩa |
FIRAuthErrorCodeNoSuchProvider |
Cho biết thao tác huỷ liên kết với 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, yêu cầu người dùng phải đăng nhập gần đây. Lỗi này cho biết gần đây người dùng chưa đăng nhập đủ. Để khắc phục, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |
sendEmailVerifyWithCompletion:
Mã |
Ý nghĩa |
FIRAuthErrorCodeUserNotFound |
Cho biết không tìm thấy tài khoản người dùng. |
xoáWithCompletion:
Mã |
Ý nghĩa |
FIRAuthErrorCodeRequiresRecentLogin |
Xoá tài khoản người dùng là một thao tác nhạy cảm về tính 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 gần đây người dùng chưa đăng nhập đủ. Để khắc phục, hãy xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |