Nếu lệnh gọi lại hoàn thành trên các phương thức Xác thực nhận được đối số NSError
không phải là nil, thì đã xảy ra lỗi. Để chuyển đến logic xử lý lỗi thích hợp trong mã sản xuất của bạn, hãy kiểm tra mã lỗi đối với các lỗi phổ biến và các lỗi cụ thể của phương pháp đượ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 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 với cùng các đối số sẽ không bao giờ thành công. Không đưa ra giả định về việc liệu hoạt động có hiệu lực ở phía máy chủ hay không.
Khi điều tra hoặc ghi lại lỗi, hãy xem lại từ điển userInfo
. FIRAuthErrorNameKey
chứa một chuỗi tên lỗi đa nền tảng có thể được sử dụng để xác định lỗi. NSLocalizedDescriptionKey
chứa một mô tả về lỗi. Mô tả này dành cho nhà phát triển, không phải cho người dùng. NSUnderlyingErrorKey
chứa lỗi cơ bản gây ra lỗi được đề cập, nếu có lỗi cơ bản.
Ngoài các trường chính được liệt kê ở 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 chung cho tất cả các phương thức API
Mã số | Nghĩa |
---|
FIRAuthErrorCodeNetworkError | Cho biết đã xảy ra lỗi mạng trong quá trình hoạt động. |
FIRAuthErrorCodeUserNotFound | Cho biết tài khoản người dùng không được tìm thấy. Điều này có thể xảy ra nếu tài khoản người dùng đã bị xóa. |
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 một số lượng yêu cầu bất thường đã được thực hiện từ thiết bị của người gọi đến máy chủ Xác thực Firebase. Thử lại sau một thời gian. |
FIRAuthErrorCodeInvalidAPIKey | Cho biết ứng dụng đã được định cấu hình bằng khóa 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 Khóa API được cung cấp. chuyển đến Bảng điều khiển API của Google và kiểm tra trong tab thông tin xác thực xem khóa API bạn đang sử dụng có ID gói ứng dụng của bạn được đưa vào danh sách trắng hay không. |
FIRAuthErrorCodeKeychainError | Cho biết đã xảy ra lỗi khi truy cập chuỗi khóa. Các 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 pháp
FIRAuth
fetchProvidersForEmail: hoàn thành:
Mã số | 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ã số | Nghĩa |
---|
FIRAuthErrorCodeOperationNotAllowed | Cho biết rằng tài khoản email và mật khẩu không được kích hoạt. Bật chúng trong phần Auth của bảng điều khiển 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 hóa. |
FIRAuthErrorCodeWrongPassword | Cho biết người dùng đã cố gắng đăng nhập bằng mật khẩu sai. |
signInWithCredential: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeInvalidCredential | Cho biết thông tin xác thực được cung cấp không hợp lệ. Điều này có thể xảy ra nếu nó đã hết hạn hoặc nó không đúng định dạng. |
FIRAuthErrorCodeInvalidEmail | Cho biết địa chỉ email không đúng định dạng, nếu thông tin xác thực 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ởi thông tin đăng nhập không được bật. Bật chúng trong phần Auth của bảng điều khiển Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Cho biết email được xác nhận bằng thông tin xác thực (ví dụ: email trong mã thông báo truy cập Facebook) đã được tài khoản hiện có sử dụng, tài khoản đó không thể được xác thực bằng phương thức đăng nhập này. Gọi fetchProvidersForEmail cho email của người dùng này và sau đó 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 cài đặt "Một tài khoản cho mỗi địa chỉ email" được bật trong bảng điều khiển Firebase , trong 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 hóa. |
FIRAuthErrorCodeWrongPassword | Cho biết người dùng đã cố gắng đăng nhập bằng mật khẩu sai, nếu thông tin đăng nhập thuộc loại EmailPasswordAuthCredential . |
signInAno nặc danhWithCompletion:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeOperationNotAllowed | Cho biết rằng tài khoản ẩn danh không được kích hoạt. Bật chúng trong phần Auth của bảng điều khiển Firebase . |
signInWithCustomToken: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeInvalidCustomToken | Cho biết lỗi xác thực với mã thông báo tùy chỉnh. |
FIRAuthErrorCodeCustomTokenMismatch | Cho biết tài khoản dịch vụ và khóa API thuộc về các dự án khác nhau. |
createUserWithEmail: mật khẩu: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeInvalidEmail | Cho biết địa chỉ email không đúng định dạng. |
FIRAuthErrorCodeEmailAlreadyInUse | Cho biết email được sử dụng để cố gắ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 những cơ chế đó. |
FIRAuthErrorCodeOperationNotAllowed | Cho biết rằng tài khoản email và mật khẩu không được kích hoạt. Bật chúng trong phần Xác thực của bảng điều khiển Firebase . |
FIRAuthErrorCodeWeakPassword | Cho biế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 giải thích chi tiết hơn có thể được hiển thị cho người dùng. |
đăng xuất:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeKeychainError | Đã chỉ ra lỗi đã xảy ra khi truy cập chuỗi khóa. Các 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ã số | Nghĩa |
---|
FIRAuthErrorCodeInvalidUserToken | Cho biết rằng mã thông báo 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 hóa và không thể sử dụng được nữa cho đến khi được bật lại từ bên trong bảng Người dùng trong bảng điều khiển Firebase. |
reauthenticateWithCredential: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeInvalidCredential | Cho biết thông tin xác thực được cung cấp không hợp lệ. Điều này có thể xảy ra nếu nó đã hết hạn hoặc nó không đúng định dạng. |
FIRAuthErrorCodeInvalidEmail | Cho biết địa chỉ email không đúng định dạng, nếu thông tin xác thực 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 một nỗ lực đã được thực hiện để 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ởi thông tin đăng nhập không được bật. Bật chúng trong phần Auth của bảng điều khiển Firebase . |
FIRAuthErrorCodeEmailAlreadyInUse | Cho biết email được xác nhận bằng thông tin xác thực (ví dụ: email trong mã thông báo truy cập Facebook) đã được tài khoản hiện có sử dụng, tài khoản đó không thể được xác thực lại bằng phương thức đăng nhập này. Gọi fetchProvidersForEmail cho email của người dùng này và sau đó 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 cài đặt "Một tài khoản cho mỗi địa chỉ email" được bật trong bảng điều khiển Firebase , trong 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 hóa. |
updateEmail: hoàn thành:
Mã số | 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 hoạt động nhạy cảm về bảo mật 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 đã không đăng nhập đủ gần đây. Để giải quyết, xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |
updatePassword: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeOperationNotAllowed | Cho biết quản trị viên đã vô hiệu hóa đăng nhập bằng nhà cung cấp danh tính được chỉ định. |
FIRAuthErrorCodeRequiresRecentLogin | Cập nhật mật khẩu của người dùng là một hoạt động nhạy cảm về bảo mật 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 đã không đăng nhập đủ gần đây. Để giải quyết, 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 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 giải thích chi tiết hơn có thể được hiển thị cho người dùng. |
linkWithCredential: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeProviderAlreadyLinked | Cho biế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 nỗ lực liên kết với thông tin đăng nhập đã được liên kết với 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ởi thông tin đăng nhập không được bật. Bật chúng trong phần Auth của bảng điều khiển Firebase . |
Phương thức này cũng có thể trả về các mã lỗi được liên kết với updateEmail:completion:
và updatePassword:completion:
trên FIRUser
.
unlinkFromProvider: hoàn thành:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeNoSuchProvider | Cho biết nỗ lực hủy liên kế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 hoạt động nhạy cảm về bảo mật 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 đã không đăng nhập đủ gần đây. Để giải quyết, xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |
sendEmailVerificationWithCompletion:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeUserNotFound | Cho biết tài khoản người dùng không được tìm thấy. |
deleteWithCompletion:
Mã số | Nghĩa |
---|
FIRAuthErrorCodeRequiresRecentLogin | Xóa tài khoản người dùng là một hoạt động nhạy cảm về bảo mật 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 đã không đăng nhập đủ gần đây. Để giải quyết, xác thực lại người dùng bằng cách gọi reauthenticateWithCredential:completion: trên FIRUser . |