Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

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

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

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

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

FIRAuth

fetchProvidersForEmail: complete:

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

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

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

signInWithCredential: השלמה:

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

signIn אנונימי עם השלמה:

קוד מַשְׁמָעוּת
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 מציין שחשבון המשתמש מושבת ולא ניתן עוד להשתמש בו עד שיופעל שוב מתוך החלונית Users במסוף Firebase.

reuthenticateWithCredential: השלמה:

קוד מַשְׁמָעוּת
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 .