หากการเรียกกลับเมื่อเสร็จสมบูรณ์ในเมธอด Authentication ได้รับอาร์กิวเมนต์ NSError ที่ไม่ใช่ nil แสดงว่าเกิดข้อผิดพลาด หากต้องการส่งไปยังตรรกะการจัดการข้อผิดพลาดที่เหมาะสมในโค้ดที่ใช้งานจริง ให้ตรวจสอบรหัสข้อผิดพลาดกับข้อผิดพลาดที่พบบ่อยและข้อผิดพลาดเฉพาะเมธอดที่ระบุไว้ด้านล่าง
ข้อผิดพลาดบางอย่างแก้ไขได้ด้วยการดำเนินการของผู้ใช้ เช่น
FIRAuthErrorCodeUserTokenExpired แก้ไขได้โดยการลงชื่อเข้าใช้ของผู้ใช้อีกครั้ง
และ FIRAuthErrorCodeWrongPassword แก้ไขได้โดยการขอให้ผู้ใช้ระบุ
รหัสผ่านที่ถูกต้อง
ยกเว้นในกรณีของ FIRAuthErrorCodeNetworkError หรือ
FIRAuthErrorCodeTooManyRequests การลองดำเนินการที่ล้มเหลวอีกครั้งด้วยอาร์กิวเมนต์เดิม
จะไม่มีทางสำเร็จ อย่าคาดเดาว่าการดำเนินการ
มีผลในฝั่งเซิร์ฟเวอร์หรือไม่
เมื่อตรวจสอบหรือบันทึกข้อผิดพลาด ให้ตรวจสอบuserInfoพจนานุกรม
FIRAuthErrorNameKey มีสตริงชื่อข้อผิดพลาดข้ามแพลตฟอร์มที่ใช้ระบุข้อผิดพลาดได้
NSLocalizedDescriptionKey มีคำอธิบายของข้อผิดพลาด คำอธิบายนี้มีไว้สำหรับนักพัฒนาแอป ไม่ใช่ผู้ใช้
NSUnderlyingErrorKey มีข้อผิดพลาดพื้นฐานที่ทำให้เกิดข้อผิดพลาดใน
คำถาม หากมีข้อผิดพลาดพื้นฐาน
นอกจากฟิลด์หลักที่ระบุไว้ข้างต้นแล้ว ยังมีฟิลด์อื่นๆ ในuserInfoพจนานุกรมที่คุณอาจพบว่ามีประโยชน์เมื่อวินิจฉัยข้อผิดพลาด
รหัสข้อผิดพลาดที่ใช้ร่วมกันในเมธอด API ทั้งหมด
| รหัส |
ความหมาย |
FIRAuthErrorCodeNetworkError |
แสดงว่าเกิดข้อผิดพลาดเกี่ยวกับเครือข่ายในระหว่างการดำเนินการ |
FIRAuthErrorCodeUserNotFound |
ระบุว่าไม่พบบัญชีผู้ใช้ กรณีนี้อาจเกิดขึ้นหากมีการลบบัญชีผู้ใช้ |
FIRAuthErrorCodeUserTokenExpired |
ระบุว่าโทเค็นของผู้ใช้ปัจจุบันหมดอายุแล้ว เช่น ผู้ใช้อาจเปลี่ยนรหัสผ่านของบัญชีในอุปกรณ์อื่น คุณต้องแจ้งให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งในอุปกรณ์นี้ |
FIRAuthErrorCodeTooManyRequests |
ระบุว่าคำขอถูกบล็อกหลังจากมีการส่งคำขอจำนวนมากอย่างผิดปกติจากอุปกรณ์ของผู้โทรไปยังเซิร์ฟเวอร์ของ Firebase Authentication โปรดรอสักครู่แล้วลองอีกครั้ง |
FIRAuthErrorCodeInvalidAPIKey |
ระบุว่าแอปพลิเคชันได้รับการกำหนดค่าด้วยคีย์ API ที่ไม่ถูกต้อง |
FIRAuthErrorCodeAppNotAuthorized |
ระบุว่าแอปไม่ได้รับอนุญาตให้ใช้การตรวจสอบสิทธิ์ Firebase กับคีย์ API ที่ระบุ ให้ไปที่คอนโซล Google API แล้วตรวจสอบในแท็บข้อมูลเข้าสู่ระบบว่าคีย์ API ที่คุณใช้มีรหัสชุดของแอปพลิเคชันอยู่ในรายการที่อนุญาตหรือไม่ |
FIRAuthErrorCodeKeychainError |
ระบุว่าเกิดข้อผิดพลาดเมื่อเข้าถึงพวงกุญแจ ฟิลด์ NSLocalizedFailureReasonErrorKey และ NSUnderlyingErrorKey ในพจนานุกรม NSError.userInfo จะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่พบ |
FIRAuthErrorCodeInternalError |
ระบุว่าเกิดข้อผิดพลาดภายใน โปรดรายงานข้อผิดพลาดพร้อมกับออบเจ็กต์ NSError ทั้งหมด |
รหัสข้อผิดพลาดเฉพาะเมธอด
FIRAuth
fetchProvidersForEmail:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง |
signInWithEmail:password:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าไม่ได้เปิดใช้บัญชีอีเมลและรหัสผ่าน เปิดใช้ในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > วิธีการลงชื่อเข้าใช้) |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง |
FIRAuthErrorCodeUserDisabled |
ระบุว่าบัญชีของผู้ใช้ถูกปิดใช้ |
FIRAuthErrorCodeWrongPassword |
ระบุว่าผู้ใช้พยายามลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่ถูกต้อง |
signInWithCredential:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidCredential |
ระบุว่าข้อมูลเข้าสู่ระบบที่ระบุไม่ถูกต้อง ซึ่งอาจเกิดขึ้นได้หากโทเค็นหมดอายุหรือมีรูปแบบไม่ถูกต้อง |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง หากข้อมูลเข้าสู่ระบบเป็นประเภท EmailPasswordAuthCredential |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวซึ่งแสดงโดยข้อมูลเข้าสู่ระบบไม่ได้เปิดใช้ เปิดใช้ในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > วิธีการลงชื่อเข้าใช้) |
FIRAuthErrorCodeEmailAlreadyInUse |
ระบุว่าอีเมลที่อ้างสิทธิ์โดยข้อมูลเข้าสู่ระบบ (เช่น อีเมลในโทเค็นเพื่อเข้าถึง Facebook) มีบัญชีที่มีอยู่ใช้งานอยู่แล้ว ซึ่งไม่สามารถตรวจสอบสิทธิ์ด้วยวิธีการลงชื่อเข้านี้ได้ เรียกใช้ fetchProvidersForEmail สำหรับอีเมลของผู้ใช้รายนี้ แล้วแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ด้วยผู้ให้บริการลงชื่อเข้าใช้ที่ส่งคืนมา ข้อผิดพลาดนี้จะเกิดขึ้นเฉพาะในกรณีที่เปิดใช้ "1 บัญชีต่อ 1 อีเมล" ในคอนโซล Firebase (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > การตั้งค่า) |
FIRAuthErrorCodeUserDisabled |
ระบุว่าบัญชีของผู้ใช้ถูกปิดใช้ |
FIRAuthErrorCodeWrongPassword |
ระบุว่าผู้ใช้พยายามลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่ถูกต้อง หากข้อมูลเข้าสู่ระบบเป็นประเภท EmailPasswordAuthCredential |
signInAnonymouslyWithCompletion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าไม่ได้เปิดใช้บัญชีที่ไม่ระบุชื่อ เปิดใช้ในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > วิธีการลงชื่อเข้าใช้) |
signInWithCustomToken:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidCustomToken |
ระบุข้อผิดพลาดในการตรวจสอบความถูกต้องของโทเค็นที่กำหนดเอง |
FIRAuthErrorCodeCustomTokenMismatch |
ระบุว่าบัญชีบริการและคีย์ API เป็นของโปรเจ็กต์ที่แตกต่างกัน |
createUserWithEmail:password:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง |
FIRAuthErrorCodeEmailAlreadyInUse |
ระบุว่าอีเมลที่ใช้พยายามลงชื่อสมัครใช้มีอยู่แล้ว โทรหา fetchProvidersForEmail เพื่อตรวจสอบกลไกการลงชื่อเข้าใช้ที่ผู้ใช้ดังกล่าวใช้ และแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ด้วยกลไกใดกลไกหนึ่ง |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าไม่ได้เปิดใช้บัญชีอีเมลและรหัสผ่าน เปิดใช้ในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > วิธีการลงชื่อเข้าใช้) |
FIRAuthErrorCodeWeakPassword |
ระบุความพยายามในการตั้งรหัสผ่านที่ถือว่าอ่อนแอเกินไป ฟิลด์ NSLocalizedFailureReasonErrorKey ในออบเจ็กต์พจนานุกรม NSError.userInfo จะมีคำอธิบายโดยละเอียดเพิ่มเติมซึ่งแสดงต่อผู้ใช้ได้ |
signOut:
| รหัส |
ความหมาย |
FIRAuthErrorCodeKeychainError |
ระบุว่าเกิดข้อผิดพลาดเมื่อเข้าถึงพวงกุญแจ ฟิลด์ NSLocalizedFailureReasonErrorKey และ NSUnderlyingErrorKey ในพจนานุกรม NSError.userInfo จะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่พบ |
FIRUser
ข้อผิดพลาดที่พบบ่อยสำหรับการดำเนินการ FIRUser
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidUserToken |
ระบุว่าโทเค็นการรีเฟรชของผู้ใช้ที่ลงชื่อเข้าใช้ซึ่งมีข้อมูลเซสชันไม่ถูกต้อง คุณต้องแจ้งให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งในอุปกรณ์นี้ |
FIRAuthErrorCodeUserDisabled |
ระบุว่าบัญชีของผู้ใช้ถูกปิดใช้และไม่สามารถใช้งานได้อีกต่อไปจนกว่าจะเปิดใช้อีกครั้งในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > ผู้ใช้) |
reauthenticateWithCredential:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeInvalidCredential |
ระบุว่าข้อมูลเข้าสู่ระบบที่ระบุไม่ถูกต้อง ซึ่งอาจเกิดขึ้นได้หากโทเค็นหมดอายุหรือมีรูปแบบไม่ถูกต้อง |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง หากข้อมูลเข้าสู่ระบบเป็นประเภท EmailPasswordAuthCredential |
FIRAuthErrorCodeWrongPassword |
ระบุว่าผู้ใช้พยายามตรวจสอบสิทธิ์อีกครั้งด้วยรหัสผ่านที่ไม่ถูกต้อง หากข้อมูลเข้าสู่ระบบเป็นประเภท EmailPasswordAuthCredential |
FIRAuthErrorCodeUserMismatch |
ระบุว่ามีการพยายามตรวจสอบสิทธิ์อีกครั้งกับผู้ใช้ที่ไม่ใช่ผู้ใช้ปัจจุบัน |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวซึ่งแสดงโดยข้อมูลเข้าสู่ระบบไม่ได้เปิดใช้ เปิดใช้ในคอนโซล Firebase (ไปที่ความปลอดภัย > การตรวจสอบสิทธิ์) |
FIRAuthErrorCodeEmailAlreadyInUse |
ระบุว่าบัญชีที่มีอยู่ใช้อีเมลที่อ้างสิทธิ์โดยข้อมูลเข้าสู่ระบบอยู่แล้ว (เช่น อีเมลในโทเค็นเพื่อเข้าถึง Facebook) ซึ่งไม่สามารถตรวจสอบสิทธิ์อีกครั้งด้วยวิธีการลงชื่อเข้านี้ เรียกใช้ fetchProvidersForEmail สำหรับอีเมลของผู้ใช้รายนี้ แล้วแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ด้วยผู้ให้บริการลงชื่อเข้าใช้ที่ส่งคืนมา ข้อผิดพลาดนี้จะเกิดขึ้นเฉพาะในกรณีที่เปิดใช้ "1 บัญชีต่อ 1 อีเมล" ในคอนโซล Firebase (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > การตั้งค่า) |
FIRAuthErrorCodeUserDisabled |
ระบุว่าบัญชีของผู้ใช้ถูกปิดใช้ |
updateEmail:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeEmailAlreadyInUse |
ระบุว่าบัญชีอื่นใช้อีเมลนี้อยู่แล้ว |
FIRAuthErrorCodeInvalidEmail |
ระบุว่าอีเมลมีรูปแบบไม่ถูกต้อง |
FIRAuthErrorCodeRequiresRecentLogin |
การอัปเดตอีเมลของผู้ใช้เป็นการดำเนินการที่มีความละเอียดอ่อนด้านความปลอดภัยซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ หากต้องการแก้ไข ให้ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยเรียกใช้ reauthenticateWithCredential:completion: ใน FIRUser |
updatePassword:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeOperationNotAllowed |
แสดงว่าผู้ดูแลระบบปิดใช้การลงชื่อเข้าใช้ด้วยผู้ให้บริการข้อมูลประจำตัวที่ระบุ |
FIRAuthErrorCodeRequiresRecentLogin |
การอัปเดตรหัสผ่านของผู้ใช้เป็นการดำเนินการที่มีความละเอียดอ่อนด้านความปลอดภัยซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ หากต้องการแก้ไข ให้ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยเรียกใช้ reauthenticateWithCredential:completion: ใน FIRUser |
FIRAuthErrorCodeWeakPassword |
ระบุความพยายามในการตั้งรหัสผ่านที่ถือว่าอ่อนแอเกินไป ฟิลด์ NSLocalizedFailureReasonErrorKey ในออบเจ็กต์พจนานุกรม NSError.userInfo จะมีคำอธิบายโดยละเอียดเพิ่มเติมซึ่งแสดงต่อผู้ใช้ได้ |
linkWithCredential:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeProviderAlreadyLinked |
ระบุความพยายามที่จะลิงก์ผู้ให้บริการประเภทที่ลิงก์กับบัญชีนี้อยู่แล้ว |
FIRAuthErrorCodeCredentialAlreadyInUse |
ระบุความพยายามที่จะลิงก์กับข้อมูลเข้าสู่ระบบที่ลิงก์กับบัญชี Firebase อื่นแล้ว |
FIRAuthErrorCodeOperationNotAllowed |
ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวซึ่งแสดงโดยข้อมูลเข้าสู่ระบบไม่ได้เปิดใช้ เปิดใช้ในFirebaseคอนโซล (ไปที่แท็บความปลอดภัย > การตรวจสอบสิทธิ์ > วิธีการลงชื่อเข้าใช้) |
นอกจากนี้ วิธีนี้อาจแสดงรหัสข้อผิดพลาดที่เกี่ยวข้องกับ
updateEmail:completion: และ
updatePassword:completion: ใน FIRUser ด้วย
unlinkFromProvider:completion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeNoSuchProvider |
ระบุความพยายามที่จะยกเลิกการลิงก์ผู้ให้บริการที่ไม่ได้ลิงก์กับบัญชี |
FIRAuthErrorCodeRequiresRecentLogin |
การอัปเดตอีเมลเป็นการดำเนินการที่มีความละเอียดอ่อนด้านความปลอดภัยซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ หากต้องการแก้ไข ให้ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยเรียกใช้ reauthenticateWithCredential:completion: ใน FIRUser |
sendEmailVerificationWithCompletion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeUserNotFound |
ระบุว่าไม่พบบัญชีผู้ใช้ |
deleteWithCompletion:
| รหัส |
ความหมาย |
FIRAuthErrorCodeRequiresRecentLogin |
การลบบัญชีผู้ใช้เป็นการดำเนินการที่มีความละเอียดอ่อนด้านความปลอดภัยซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ หากต้องการแก้ไข ให้ตรวจสอบสิทธิ์ผู้ใช้อีกครั้งโดยเรียกใช้ reauthenticateWithCredential:completion: ใน FIRUser |