Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

טפל בשגיאות האימות של Firebase iOS

אם NSError על השלמת שיטות האימות מקבלת ארגומנט NSError שאינו אפס, אירעה שגיאה. כדי לשלוח לוגיקה מתאימה לטיפול בשגיאות בקוד הייצור שלך, בדוק את קוד השגיאה כנגד שגיאות נפוצות ושגיאות ספציפיות לשיטה המפורטות להלן.

ניתן לפתור שגיאות מסוימות על ידי פעולות משתמש מסוימות, לדוגמה, ניתן לפתור את FIRAuthErrorCodeUserTokenExpired ידי כניסה למשתמש שוב, ו- FIRAuthErrorCodeWrongPassword ידי בקשה מהמשתמש לספק את הסיסמה הנכונה.

למעט במקרה של FIRAuthErrorCodeNetworkError או FIRAuthErrorCodeTooManyRequests , ניסיון חוזר לפעולה כושלת עם אותם טיעונים לעולם לא יצליח. אל תניח שום הנחה אם הפעולה נכנסה לתוקף בצד השרת או לא.

בעת חקירה או רישום של שגיאות, עיין במילון userInfo . FIRAuthErrorNameKey מכיל מחרוזת שם שגיאה בין פלטפורמות שיכולה לשמש לזיהוי השגיאה. NSLocalizedDescriptionKey מכיל תיאור של השגיאה. תיאור זה מיועד למפתח ולא למשתמש. NSUnderlyingErrorKey מכיל את השגיאה הבסיסית שגרמה לשגיאה המדוברת, אם קיימת שגיאת בסיס.

בנוסף לשדות העיקריים המפורטים לעיל, יכולים להיות במילון userInfo שדות אחרים userInfo להיות לך שימושיים בעת אבחון שגיאות.

קודי שגיאה משותפים לכל שיטות ה- API

קוד מַשְׁמָעוּת
FIRAuthErrorCodeNetworkError מציין שגיאת רשת התרחשה במהלך הפעולה.
FIRAuthErrorCodeUserNotFound מציין שחשבון המשתמש לא נמצא. זה יכול לקרות אם חשבון המשתמש יימחק.
FIRAuthErrorCodeUserTokenExpired מציין שפג תוקפו של האסימון של המשתמש הנוכחי, לדוגמה, ייתכן שהמשתמש שינה את סיסמת החשבון במכשיר אחר. עליך לבקש מהמשתמש להיכנס שוב למכשיר זה.
FIRAuthErrorCodeTooManyRequests מציין כי הבקשה נחסמה לאחר שבוצעו מספר חריג של בקשות ממכשיר המתקשר לשרתי האימות של Firebase. נסה שוב לאחר זמן מה.
FIRAuthErrorCodeInvalidAPIKey מציין שהיישום הוגדר באמצעות מפתח API לא חוקי.
FIRAuthErrorCodeAppNotAuthorized מציין שהאפליקציה אינה מורשית להשתמש באימות Firebase באמצעות מפתח ה- API המסופק. עבור אל מסוף ה- API של גוגל ובדוק בכרטיסיית האישורים שמפתח ה- API שבו אתה משתמש כולל את מספר החבילה של היישום שלך.
FIRAuthErrorCodeKeychainError מציין שגיאה שהתרחשה בעת גישה למחזיק המפתחות. NSLocalizedFailureReasonErrorKey ו NSUnderlyingErrorKey שדות NSError.userInfo המילון יכילו מידע נוסף על השגיאה נתקלה.
FIRAuthErrorCodeInternalError מציין כי אירעה שגיאה פנימית. אנא דווח על השגיאה עם כל האובייקט NSError .

קודי שגיאה ספציפיים לשיטה

FIRAuth

fetchProvidersForEmail: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני לא תקפה.

signInWithEmail: סיסמה: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeOperationNotAllowed מציין שחשבונות דוא"ל וסיסמה אינם מופעלים. אפשר אותם בקטע 'אימות' במסוף Firebase .
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני לא תקפה.
FIRAuthErrorCodeUserDisabled מציין שחשבון המשתמש מושבת.
FIRAuthErrorCodeWrongPassword מציין שהמשתמש ניסה להיכנס עם סיסמה שגויה.

signInWithCredential: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidCredential מציין שהאישור שסופק אינו חוקי. זה יכול לקרות אם פג תוקפו או שהוא לא תקין.
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני שגויה, אם האישור הוא מסוג EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed מציין כי חשבונות עם ספק הזהות המיוצג על ידי האישור אינם מופעלים. אפשר אותם בקטע 'אימות' במסוף Firebase .
FIRAuthErrorCodeEmailAlreadyInUse מציין שהדואר האלקטרוני שהאישור טוען (למשל הדוא"ל באסימון הגישה של פייסבוק) כבר נמצא בשימוש על ידי חשבון קיים, שלא ניתן לאמת אותו באמצעות שיטת כניסה זו. התקשר אל fetchProvidersForEmail לדוא"ל של משתמש זה ואז בקש ממנו להיכנס עם כל ספקי הכניסה שיוחזרו. שגיאה זו תושלך רק אם ההגדרה "חשבון אחד לכל כתובת דוא"ל" מופעלת במסוף Firebase , תחת הגדרות אימות.
FIRAuthErrorCodeUserDisabled מציין שחשבון המשתמש מושבת.
FIRAuthErrorCodeWrongPassword מציין שהמשתמש ניסה להיכנס עם סיסמה שגויה, אם האישור הוא מסוג EmailPasswordAuthCredential .

signInAnonymouslyWithCompletion:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeOperationNotAllowed מציין שחשבונות אנונימיים אינם מופעלים. אפשר אותם בקטע 'אימות' במסוף Firebase .

signInWithCustomToken: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidCustomToken מציין שגיאת אימות עם האסימון המותאם אישית.
FIRAuthErrorCodeCustomTokenMismatch מציין שחשבון השירות ומפתח ה- API שייכים לפרויקטים שונים.

createUserWithEmail: סיסמה: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני לא תקפה.
FIRAuthErrorCodeEmailAlreadyInUse מציין כי הדוא"ל ששימש לניסיון הרשמה כבר קיים. התקשר אל fetchProvidersForEmail כדי לבדוק באילו מנגנוני כניסה משתמש כזה השתמש fetchProvidersForEmail מהמשתמש להיכנס עם אחד מאלה.
FIRAuthErrorCodeOperationNotAllowed מציין שחשבונות דוא"ל וסיסמה אינם מופעלים. אפשר אותם בקטע אימות במסוף Firebase .
FIRAuthErrorCodeWeakPassword מציין ניסיון להגדיר סיסמה שנחשבת חלשה מדי. NSLocalizedFailureReasonErrorKey שדה NSError.userInfo אובייקט המילון יכיל הסבר מפורט יותר שיכול להיות מוצג בפני המשתמש.

התנתק:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeKeychainError ציין שגיאה שהתרחשה בעת גישה למחזיק המפתחות. NSLocalizedFailureReasonErrorKey ו NSUnderlyingErrorKey שדות NSError.userInfo המילון יכילו מידע נוסף על השגיאה נתקלה.

FIRUser

שגיאות נפוצות בפעולות FIRUser

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidUserToken מציין כי אסימון הרענון של המשתמש המחובר, המכיל מידע על הפעלה, אינו חוקי. עליך לבקש מהמשתמש להיכנס שוב למכשיר זה.
FIRAuthErrorCodeUserDisabled מציין שחשבון המשתמש מושבת ולא ניתן להשתמש בו עוד לפני הפעלתו מחדש מתוך חלונית המשתמשים במסוף Firebase.

אימות מחדשWithCredential: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeInvalidCredential מציין שהאישור שסופק אינו חוקי. זה יכול לקרות אם פג תוקפו או שהוא לא תקין.
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני שגויה, אם האישור הוא מסוג EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword מציין שהמשתמש ניסה לבצע אימות מחדש עם סיסמה שגויה, אם האישור הוא מסוג EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch מציין כי נעשה ניסיון לבצע אימות מחדש עם משתמש שאינו המשתמש הנוכחי.
FIRAuthErrorCodeOperationNotAllowed מציין כי חשבונות עם ספק הזהות המיוצג על ידי האישור אינם מופעלים. אפשר אותם בקטע 'אימות' במסוף Firebase .
FIRAuthErrorCodeEmailAlreadyInUse מציין כי הדוא"ל שהאישור טוען (למשל הדוא"ל באסימון הגישה של פייסבוק) כבר נמצא בשימוש על ידי חשבון קיים, שלא ניתן לאמת מחדש בשיטת כניסה זו. התקשר אל fetchProvidersForEmail לדוא"ל של משתמש זה ואז בקש ממנו להיכנס עם כל ספקי הכניסה שיוחזרו. שגיאה זו תושלך רק אם ההגדרה "חשבון אחד לכל כתובת דוא"ל" מופעלת במסוף Firebase , תחת הגדרות אימות.
FIRAuthErrorCodeUserDisabled מציין שחשבון המשתמש מושבת.

updateEmail: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeEmailAlreadyInUse מציין כי הדוא"ל כבר נמצא בשימוש על ידי חשבון אחר.
FIRAuthErrorCodeInvalidEmail מציין שכתובת הדואר האלקטרוני לא תקפה.
FIRAuthErrorCodeRequiresRecentLogin עדכון דוא"ל של משתמש הוא פעולה רגישה לאבטחה הדורשת כניסה לאחרונה מהמשתמש. שגיאה זו מציינת שהמשתמש לא נכנס לאחרונה מספיק. כדי לפתור, אמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב- FIRUser .

updatePassword: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeOperationNotAllowed מציין שמנהל המערכת יושבת בכניסה עם ספק הזהות שצוין.
FIRAuthErrorCodeRequiresRecentLogin עדכון סיסמת משתמש הוא פעולה רגישה לאבטחה הדורשת כניסה לאחרונה מהמשתמש. שגיאה זו מציינת שהמשתמש לא נכנס לאחרונה מספיק. כדי לפתור, אמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב- FIRUser .
FIRAuthErrorCodeWeakPassword מציין ניסיון להגדיר סיסמה שנחשבת חלשה מדי. NSLocalizedFailureReasonErrorKey שדה NSError.userInfo אובייקט המילון יכיל הסבר מפורט יותר שיכול להיות מוצג בפני המשתמש.

linkWithCredential: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeProviderAlreadyLinked מציין ניסיון לקשר ספק מסוג שכבר מקושר לחשבון זה.
FIRAuthErrorCodeCredentialAlreadyInUse מציין ניסיון לקשר עם אישורים שכבר קושרו לחשבון Firebase אחר.
FIRAuthErrorCodeOperationNotAllowed מציין כי חשבונות עם ספק הזהות המיוצג על ידי האישור אינם מופעלים. אפשר אותם בקטע 'אימות' במסוף Firebase .

שיטה זו עשויה גם להחזיר קודי שגיאה הקשורים updateEmail:completion: ו updatePassword:completion: ב- FIRUser .

unlinkFromProvider: השלמה:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeNoSuchProvider מציין ניסיון לבטל קישור לספק שאינו מקושר לחשבון.
FIRAuthErrorCodeRequiresRecentLogin עדכון דוא"ל הוא פעולה רגישה לאבטחה הדורשת כניסה לאחרונה מהמשתמש. שגיאה זו מציינת שהמשתמש לא נכנס לאחרונה מספיק. כדי לפתור, אמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב- FIRUser .

sendEmailVerificationWithCompletion:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeUserNotFound מציין שחשבון המשתמש לא נמצא.

deleteWithCompletion:

קוד מַשְׁמָעוּת
FIRAuthErrorCodeRequiresRecentLogin מחיקת חשבון משתמש היא פעולה רגישה לאבטחה הדורשת כניסה לאחרונה מהמשתמש. שגיאה זו מציינת שהמשתמש לא נכנס לאחרונה מספיק. כדי לפתור, אמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב- FIRUser .