Catch up on everthing we announced at this year's Firebase Summit. Learn more

จัดการข้อผิดพลาดในการตรวจสอบสิทธิ์แพลตฟอร์ม Firebase ของ Apple

หากโทรกลับเสร็จสิ้นในวิธีการรับรองความถูกต้องได้รับการ NSError โต้แย้งที่ไม่ได้เป็นศูนย์เกิดข้อผิดพลาด หากต้องการส่งไปยังตรรกะการจัดการข้อผิดพลาดที่เหมาะสมในรหัสการผลิตของคุณ ให้ตรวจสอบรหัสข้อผิดพลาดกับข้อผิดพลาดทั่วไปและข้อผิดพลาดเฉพาะวิธีการที่แสดงด้านล่าง

ข้อผิดพลาดบางอย่างสามารถแก้ไขได้โดยการกระทำของผู้ใช้โดยเฉพาะอย่างยิ่งเช่น FIRAuthErrorCodeUserTokenExpired สามารถแก้ไขได้โดยการลงนามของผู้ใช้ในอีกครั้งและ FIRAuthErrorCodeWrongPassword โดยขอให้ผู้ใช้เพื่อให้รหัสผ่านที่ถูกต้อง

ยกเว้นในกรณีของ FIRAuthErrorCodeNetworkError หรือ FIRAuthErrorCodeTooManyRequests กำลังลองอีกครั้งความล้มเหลวในการดำเนินการกับการขัดแย้งเดียวกันจะไม่ประสบความสำเร็จ อย่าตั้งสมมติฐานว่าการดำเนินการดังกล่าวมีผลกับฝั่งเซิร์ฟเวอร์หรือไม่

เมื่อตรวจสอบการเข้าสู่ระบบหรือข้อผิดพลาดตรวจสอบ userInfo พจนานุกรม FIRAuthErrorNameKey มีข้ามแพลตฟอร์มสตริงชื่อข้อผิดพลาดที่สามารถนำมาใช้สำหรับการระบุข้อผิดพลาด NSLocalizedDescriptionKey มีคำอธิบายของข้อผิดพลาด คำอธิบายนี้มีไว้สำหรับนักพัฒนา ไม่ใช่ผู้ใช้ NSUnderlyingErrorKey มีข้อผิดพลาดพื้นฐานที่ก่อให้เกิดข้อผิดพลาดในคำถามถ้ามีข้อผิดพลาดพื้นฐานเป็นปัจจุบัน

นอกจากฟิลด์หลักดังกล่าวข้างต้นอาจมีสาขาอื่น ๆ ใน userInfo พจนานุกรมที่คุณอาจพบว่ามีประโยชน์เมื่อการวินิจฉัยข้อผิดพลาด

รหัสข้อผิดพลาดทั่วไปสำหรับวิธีการ API ทั้งหมด

รหัส ความหมาย
FIRAuthErrorCodeNetworkError บ่งชี้ว่ามีข้อผิดพลาดของเครือข่ายเกิดขึ้นระหว่างการดำเนินการ
FIRAuthErrorCodeUserNotFound แสดงว่าไม่พบบัญชีผู้ใช้ สิ่งนี้อาจเกิดขึ้นได้หากบัญชีผู้ใช้ถูกลบ
FIRAuthErrorCodeUserTokenExpired ระบุว่าโทเค็นของผู้ใช้ปัจจุบันหมดอายุแล้ว ตัวอย่างเช่น ผู้ใช้อาจเปลี่ยนรหัสผ่านบัญชีในอุปกรณ์อื่น คุณต้องแจ้งให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งบนอุปกรณ์นี้
FIRAuthErrorCodeTooManyRequests ระบุว่าคำขอถูกบล็อกหลังจากมีจำนวนคำขอผิดปกติจากอุปกรณ์ผู้โทรไปยังเซิร์ฟเวอร์ Firebase Authentication ลองอีกครั้งหลังจากผ่านไประยะหนึ่ง
FIRAuthErrorCodeInvalidAPIKey ระบุว่าแอปพลิเคชันได้รับการกำหนดค่าด้วยคีย์ API ที่ไม่ถูกต้อง
FIRAuthErrorCodeAppNotAuthorized ระบุว่าแอปไม่ได้รับอนุญาตให้ใช้การตรวจสอบสิทธิ์ Firebase กับคีย์ API ที่ให้มา ไปที่คอนโซล Google API และตรวจสอบภายใต้แท็บข้อมูลประจำตัวว่าคีย์ API ที่คุณใช้มีรายการ ID ชุดของแอปพลิเคชันที่อนุญาตพิเศษ
FIRAuthErrorCodeKeychainError ระบุข้อผิดพลาดที่เกิดขึ้นเมื่อเข้าถึงพวงกุญแจ NSLocalizedFailureReasonErrorKey และ NSUnderlyingErrorKey ฟิลด์ใน NSError.userInfo พจนานุกรมจะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่พบ
FIRAuthErrorCodeInternalError บ่งชี้ว่ามีข้อผิดพลาดภายในเกิดขึ้น กรุณา รายงานข้อผิดพลาด ที่มีทั้ง NSError วัตถุ

รหัสข้อผิดพลาดเฉพาะวิธี

FIRAuth

fetchProvidersForEmail:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeInvalidEmail ระบุว่าที่อยู่อีเมลมีรูปแบบไม่ถูกต้อง

signInWithEmail:รหัสผ่าน:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeOperationNotAllowed ระบุว่าไม่ได้เปิดใช้งานบัญชีอีเมลและรหัสผ่าน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase
FIRAuthErrorCodeInvalidEmail ระบุว่าที่อยู่อีเมลมีรูปแบบไม่ถูกต้อง
FIRAuthErrorCodeUserDisabled แสดงว่าบัญชีผู้ใช้ถูกปิดใช้งาน
FIRAuthErrorCodeWrongPassword แสดงว่าผู้ใช้พยายามลงชื่อเข้าใช้ด้วยรหัสผ่านที่ไม่ถูกต้อง

signInWithCredential:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeInvalidCredential ระบุว่าข้อมูลประจำตัวที่ให้มาไม่ถูกต้อง สิ่งนี้อาจเกิดขึ้นได้หากหมดอายุหรือมีรูปแบบไม่ถูกต้อง
FIRAuthErrorCodeInvalidEmail บ่งชี้ที่อยู่อีเมลที่ไม่ถูกต้องถ้าข้อมูลประจำตัวที่เป็นประเภท EmailPasswordAuthCredential
FIRAuthErrorCodeOperationNotAllowed ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวที่แสดงโดยข้อมูลประจำตัวไม่ได้เปิดใช้งาน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase
FIRAuthErrorCodeEmailAlreadyInUse บ่งชี้ว่าอีเมลที่ยืนยันโดยข้อมูลประจำตัว (เช่น อีเมลในโทเค็นการเข้าถึง Facebook) ถูกใช้โดยบัญชีที่มีอยู่แล้ว ซึ่งไม่สามารถรับรองความถูกต้องด้วยวิธีการลงชื่อเข้าใช้นี้ โทร fetchProvidersForEmail สำหรับอีเมลของผู้ใช้นี้แล้วให้พวกเขาในการลงชื่อเข้ากับใด ๆ ของการเข้าสู่ระบบผู้ให้บริการกลับ ข้อผิดพลาดนี้จะถูกโยนถ้า "หนึ่งบัญชีต่อที่อยู่อีเมลของ" การตั้งค่าเปิดใช้งานใน Firebase คอนโซล ภายใต้การตั้งค่าการรับรองความถูกต้อง
FIRAuthErrorCodeUserDisabled แสดงว่าบัญชีผู้ใช้ถูกปิดใช้งาน
FIRAuthErrorCodeWrongPassword บ่งบอกถึงการเข้าสู่ระบบของผู้ใช้ความพยายามด้วยรหัสผ่านไม่ถูกต้องถ้าข้อมูลประจำตัวที่เป็นประเภท EmailPasswordAuthCredential

ลงชื่อเข้าใช้โดยไม่ระบุชื่อด้วยการกรอก:

รหัส ความหมาย
FIRAuthErrorCodeOperationNotAllowed ระบุว่าไม่ได้เปิดใช้งานบัญชีที่ไม่ระบุตัวตน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase

signInWithCustomToken:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeInvalidCustomToken ระบุข้อผิดพลาดในการตรวจสอบความถูกต้องด้วยโทเค็นที่กำหนดเอง
FIRAuthErrorCodeCustomTokenMismatch ระบุว่าบัญชีบริการและคีย์ API เป็นของโปรเจ็กต์ต่างๆ

createUserWithEmail:รหัสผ่าน:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeInvalidEmail ระบุว่าที่อยู่อีเมลมีรูปแบบไม่ถูกต้อง
FIRAuthErrorCodeEmailAlreadyInUse แสดงว่าอีเมลที่ใช้สมัครมีอยู่แล้ว โทร fetchProvidersForEmail เพื่อตรวจสอบการลงชื่อเข้าใช้กลไกของผู้ใช้เช่นใช้และแจ้งให้ผู้ใช้ลงชื่อเข้าใช้ด้วยหนึ่งในบรรดา
FIRAuthErrorCodeOperationNotAllowed ระบุว่าไม่ได้เปิดใช้งานบัญชีอีเมลและรหัสผ่าน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase
FIRAuthErrorCodeWeakPassword ระบุว่ามีการพยายามตั้งรหัสผ่านที่ถือว่าไม่รัดกุมเกินไป NSLocalizedFailureReasonErrorKey ฟิลด์ใน NSError.userInfo วัตถุพจนานุกรมจะมีคำอธิบายรายละเอียดเพิ่มเติมที่สามารถแสดงให้กับผู้ใช้

ออกจากระบบ:

รหัส ความหมาย
FIRAuthErrorCodeKeychainError ระบุข้อผิดพลาดเกิดขึ้นเมื่อเข้าถึงพวงกุญแจ NSLocalizedFailureReasonErrorKey และ NSUnderlyingErrorKey ฟิลด์ใน NSError.userInfo พจนานุกรมจะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่พบ

FIRUser

ข้อผิดพลาดทั่วไปสำหรับการดำเนินการ FIRUser

รหัส ความหมาย
FIRAuthErrorCodeInvalidUserToken ระบุว่าโทเค็นการรีเฟรชของผู้ใช้ที่ลงชื่อเข้าใช้ซึ่งมีข้อมูลเซสชันไม่ถูกต้อง คุณต้องแจ้งให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งบนอุปกรณ์นี้
FIRAuthErrorCodeUserDisabled ระบุว่าบัญชีของผู้ใช้ถูกปิดใช้งานและไม่สามารถใช้งานได้อีกต่อไปจนกว่าจะเปิดใช้งานอีกครั้งจากภายในแผงผู้ใช้ในคอนโซล Firebase

รับรองความถูกต้องอีกครั้งด้วย Credential: เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeInvalidCredential ระบุว่าข้อมูลประจำตัวที่ให้มาไม่ถูกต้อง สิ่งนี้อาจเกิดขึ้นได้หากหมดอายุหรือมีรูปแบบไม่ถูกต้อง
FIRAuthErrorCodeInvalidEmail บ่งชี้ที่อยู่อีเมลที่ไม่ถูกต้องถ้าข้อมูลประจำตัวที่เป็นประเภท EmailPasswordAuthCredential
FIRAuthErrorCodeWrongPassword บ่งชี้ว่าผู้ใช้พยายาม reauthentication กับรหัสผ่านไม่ถูกต้องถ้าข้อมูลประจำตัวที่เป็นประเภท EmailPasswordAuthCredential
FIRAuthErrorCodeUserMismatch ระบุว่ามีการพยายามตรวจสอบสิทธิ์อีกครั้งกับผู้ใช้ที่ไม่ใช่ผู้ใช้ปัจจุบัน
FIRAuthErrorCodeOperationNotAllowed ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวที่แสดงโดยข้อมูลประจำตัวไม่ได้เปิดใช้งาน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase
FIRAuthErrorCodeEmailAlreadyInUse ระบุว่าอีเมลที่ยืนยันโดยข้อมูลประจำตัว (เช่น อีเมลในโทเค็นการเข้าถึง Facebook) ถูกใช้โดยบัญชีที่มีอยู่แล้ว ซึ่งไม่สามารถตรวจสอบสิทธิ์ซ้ำด้วยวิธีลงชื่อเข้าใช้นี้ได้ โทร fetchProvidersForEmail สำหรับอีเมลของผู้ใช้นี้แล้วให้พวกเขาในการลงชื่อเข้ากับใด ๆ ของการเข้าสู่ระบบผู้ให้บริการกลับ ข้อผิดพลาดนี้จะถูกโยนถ้า "หนึ่งบัญชีต่อที่อยู่อีเมลของ" การตั้งค่าเปิดใช้งานใน Firebase คอนโซล ภายใต้การตั้งค่าการรับรองความถูกต้อง
FIRAuthErrorCodeUserDisabled แสดงว่าบัญชีผู้ใช้ถูกปิดใช้งาน

อัปเดตอีเมล:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeEmailAlreadyInUse ระบุว่าอีเมลถูกใช้โดยบัญชีอื่นแล้ว
FIRAuthErrorCodeInvalidEmail ระบุว่าที่อยู่อีเมลมีรูปแบบไม่ถูกต้อง
FIRAuthErrorCodeRequiresRecentLogin การอัปเดตอีเมลของผู้ใช้เป็นการดำเนินการที่มีความละเอียดอ่อนด้านความปลอดภัย ซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ การแก้ไข reauthenticate ผู้ใช้โดยเรียก reauthenticateWithCredential:completion: บน FIRUser

อัปเดตรหัสผ่าน:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeOperationNotAllowed ระบุว่าผู้ดูแลระบบปิดใช้งานการลงชื่อเข้าใช้ด้วยผู้ให้บริการข้อมูลประจำตัวที่ระบุ
FIRAuthErrorCodeRequiresRecentLogin การอัปเดตรหัสผ่านของผู้ใช้เป็นการดำเนินการที่มีความสำคัญต่อความปลอดภัย ซึ่งจำเป็นต้องเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ การแก้ไข reauthenticate ผู้ใช้โดยเรียก reauthenticateWithCredential:completion: บน FIRUser
FIRAuthErrorCodeWeakPassword ระบุว่ามีการพยายามตั้งรหัสผ่านที่ถือว่าไม่รัดกุมเกินไป NSLocalizedFailureReasonErrorKey ฟิลด์ใน NSError.userInfo วัตถุพจนานุกรมจะมีคำอธิบายรายละเอียดเพิ่มเติมที่สามารถแสดงให้กับผู้ใช้

linkWithCredential:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeProviderAlreadyLinked ระบุถึงความพยายามในการเชื่อมโยงผู้ให้บริการประเภทที่เชื่อมโยงกับบัญชีนี้แล้ว
FIRAuthErrorCodeCredentialAlreadyInUse ระบุความพยายามที่จะเชื่อมโยงกับข้อมูลรับรองที่เชื่อมโยงกับบัญชี Firebase อื่นแล้ว
FIRAuthErrorCodeOperationNotAllowed ระบุว่าบัญชีที่มีผู้ให้บริการข้อมูลประจำตัวที่แสดงโดยข้อมูลประจำตัวไม่ได้เปิดใช้งาน ช่วยให้พวกเขาในส่วนของการตรวจสอบสิทธิ์ของ คอนโซล Firebase

วิธีนี้ยังอาจจะกลับรหัสข้อผิดพลาดที่เกี่ยวข้องกับ updateEmail:completion: และ updatePassword:completion: บน FIRUser

unlinkFromProvider:เสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeNoSuchProvider บ่งชี้ถึงความพยายามที่จะยกเลิกการเชื่อมโยงผู้ให้บริการที่ไม่ได้เชื่อมโยงกับบัญชี
FIRAuthErrorCodeRequiresRecentLogin การอัปเดตอีเมลเป็นการดำเนินการที่มีความละเอียดอ่อนในการรักษาความปลอดภัย ซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ การแก้ไข reauthenticate ผู้ใช้โดยเรียก reauthenticateWithCredential:completion: บน FIRUser

sendEmailVerificationWithCompletion:

รหัส ความหมาย
FIRAuthErrorCodeUserNotFound แสดงว่าไม่พบบัญชีผู้ใช้

ลบด้วยเสร็จสิ้น:

รหัส ความหมาย
FIRAuthErrorCodeRequiresRecentLogin การลบบัญชีผู้ใช้เป็นการดำเนินการที่มีความอ่อนไหวต่อความปลอดภัย ซึ่งต้องมีการเข้าสู่ระบบล่าสุดจากผู้ใช้ ข้อผิดพลาดนี้บ่งชี้ว่าผู้ใช้ไม่ได้ลงชื่อเข้าใช้เมื่อเร็วๆ นี้ การแก้ไข reauthenticate ผู้ใช้โดยเรียก reauthenticateWithCredential:completion: บน FIRUser