จัดการข้อผิดพลาดการตรวจสอบสิทธิ์แพลตฟอร์ม 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 แสดงว่าที่อยู่อีเมลมีรูปแบบไม่ถูกต้อง

ลงชื่อเข้าใช้ด้วยอีเมล:รหัสผ่าน:เสร็จสิ้น:

รหัส ความหมาย
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

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

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

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

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

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

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

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

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

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

ยกเลิกการเชื่อมโยงจากผู้ให้บริการ: เสร็จสิ้น:

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

sendEmailVerificationWithCompletion:

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

ลบด้วยความสมบูรณ์:

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