טיפול בשגיאות אימות של מוצרי הפלטפורמה של Firebase ב-Firebase
קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
אם הקריאה החוזרת של ההשלמה ב-methods Authentication מקבלת ארגומנט NSError אינו אפס, אירעה שגיאה. כדי לשלוח לטיפול מתאים בשגיאות את הלוגיקה שבקוד הייצור, לבדוק את קוד השגיאה מול שגיאות נפוצות והשגיאות הספציפיות האלה, שמפורטות בהמשך.
יש שגיאות שאפשר לפתור על ידי פעולות מסוימות של המשתמשים, לדוגמה, אפשר לפתור את הבעיה FIRAuthErrorCodeUserTokenExpired על ידי כניסה של המשתמש לחשבון שוב, וFIRAuthErrorCodeWrongPassword באמצעות בקשה מהמשתמש לספק הסיסמה הנכונה.
מלבד במקרה של FIRAuthErrorCodeNetworkError או FIRAuthErrorCodeTooManyRequests, ניסיון חוזר לפעולה נכשלת עם אותה פעולה ארגומנטים לעולם לא יצליחו. אל תניח לי, אם הפעולה, נכנסה לתוקף בצד השרת.
במהלך בדיקה או רישום של שגיאות ביומן, כדאי לעיין במילון userInfo. הערך FIRAuthErrorNameKey מכיל מחרוזת שם של שגיאה בפלטפורמות שונות שיכול להיות שמשמש לזיהוי השגיאה. NSLocalizedDescriptionKey מכיל תיאור של השגיאה. הזה מיועד למפתח, לא למשתמש. השדה NSUnderlyingErrorKey מכיל את השגיאה הבסיסית שגרמה לשגיאה הרלוונטית, אם יש שגיאה בסיסית.
בנוסף לשדות הראשיים שצוינו למעלה, יכולים להיות שדות נוספים ברמה מילון של userInfo שיכול להועיל לאבחון שגיאות.
קודי שגיאה נפוצים לכל שיטות ה-API
קוד
משמעות
FIRAuthErrorCodeNetworkError
מציינת שגיאת רשת שאירעה במהלך הפעולה.
FIRAuthErrorCodeUserNotFound
מעיד על כך שחשבון המשתמש לא נמצא. מצב כזה יכול לקרות אם חשבון המשתמש נמחק.
FIRAuthErrorCodeUserTokenExpired
מציין שפג התוקף של האסימון של המשתמש הנוכחי. לדוגמה, יכול להיות שהמשתמש שינה את סיסמת החשבון במכשיר אחר. צריך לבקש מהמשתמש להיכנס שוב למכשיר הזה.
FIRAuthErrorCodeTooManyRequests
מציין שהבקשה נחסמה אחרי מספר חריג של בקשות שנשלחו מהמכשיר ששלח את הקריאה לשרתי Firebase Authentication. אפשר לנסות שוב מאוחר יותר.
FIRAuthErrorCodeInvalidAPIKey
מעיד על כך שהאפליקציה הוגדרה באמצעות מפתח API לא חוקי.
FIRAuthErrorCodeAppNotAuthorized
מציין שהאפליקציה לא מורשית להשתמש באימות ב-Firebase עם מפתח ה-API שצוין. עליך לעבור אל Google API Console ולבדוק בכרטיסייה 'פרטי כניסה' שמפתח ה-API שבו אתה משתמש כלול ברשימת ההיתרים של מזהה החבילה של האפליקציה.
FIRAuthErrorCodeKeychainError
הקוד הזה מציין שאירעה שגיאה בגישה לאוסף המפתחות. השדות NSLocalizedFailureReasonErrorKey ו-NSUnderlyingErrorKey במילון NSError.userInfo יכילו מידע נוסף על השגיאה שבה נתקלת.
FIRAuthErrorCodeInternalError
מצביע על שגיאה פנימית. יש לדווח על השגיאה עם האובייקט NSError במלואו.
קודי שגיאה ספציפיים לשיטות
FIRAuth
FetchProvidersForEmail:complete:
קוד
משמעות
FIRAuthErrorCodeInvalidEmail
מציינת שהתבנית של כתובת האימייל שגויה.
signInWithEmail:password:complete:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות אימייל וסיסמאות לא מופעלים. צריך להפעיל אותם בקטע 'אימות' במסוף Firebase.
FIRAuthErrorCodeInvalidEmail
מציינת שהתבנית של כתובת האימייל שגויה.
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה להיכנס לחשבון עם סיסמה שגויה.
signInWithCredential:complete:
קוד
משמעות
FIRAuthErrorCodeInvalidCredential
מציין שפרטי הכניסה שסופקו לא חוקיים. זה יכול לקרות אם התוקף שלו פג או שהפורמט שלו שגוי.
FIRAuthErrorCodeInvalidEmail
אם פרטי הכניסה הם מסוג EmailPasswordAuthCredential, הקוד הזה מציין שכתובת האימייל לא תקינה.
FIRAuthErrorCodeOperationNotAllowed
מציין שהחשבונות של ספק הזהויות שמיוצג על ידי פרטי הכניסה לא מופעלים. צריך להפעיל אותם בקטע 'אימות' במסוף Firebase.
FIRAuthErrorCodeEmailAlreadyInUse
מציין את כתובת האימייל שצוינה בפרטי הכניסה (למשל, האימייל באסימון גישה של Facebook) כבר נמצא בשימוש של חשבון קיים, שלא ניתן לאמת אותו באמצעות שיטת הכניסה הזו. צריך להתקשר אל fetchProvidersForEmail כדי לקבל את כתובת האימייל של המשתמש הזה, ואז לבקש ממנו להיכנס לחשבון אצל אחד מספקי הכניסה שחוזרים. השגיאה הזו תופיע רק אם בוחרים באפשרות 'חשבון אחד לכל כתובת אימייל' ההגדרה מופעלת במסוף Firebase, בהגדרות של Authentication.
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה להיכנס באמצעות סיסמה שגויה, אם פרטי הכניסה הם מסוג EmailPasswordAuthCredential.
signInAnonymouslyWithCompletion:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות אנונימיים לא מופעלים. מפעילים אותם בקטע Auth (אימות) במסוף Firebase.
signInWithCustomToken:complete:
קוד
משמעות
FIRAuthErrorCodeInvalidCustomToken
מציין שגיאת אימות באסימון המותאם אישית.
FIRAuthErrorCodeCustomTokenMismatch
מציין את חשבון השירות ומפתח ה-API שייכים לפרויקטים שונים.
createUserWithEmail:password:complete:
קוד
משמעות
FIRAuthErrorCodeInvalidEmail
מציינת שהתבנית של כתובת האימייל שגויה.
FIRAuthErrorCodeEmailAlreadyInUse
כתובת האימייל ששימשה לניסיון ההרשמה כבר קיימת. צריך להתקשר אל fetchProvidersForEmail כדי לבדוק באילו מנגנוני כניסה המשתמש השתמש, ולבקש מהמשתמש להיכנס באמצעות אחד מהם.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות אימייל וסיסמה לא מופעלים. להפעיל אותן בקטע Authentication במסוף Firebase.
FIRAuthErrorCodeWeakPassword
הסטטוס הזה מציין ניסיון להגדיר סיסמה שנחשבת לחלשה מדי. השדה NSLocalizedFailureReasonErrorKey באובייקט המילון NSError.userInfo יכיל הסבר מפורט יותר שניתן להציג למשתמש.
signOut:
קוד
משמעות
FIRAuthErrorCodeKeychainError
צוינה שגיאה במהלך הגישה ל-Keychain. השדות NSLocalizedFailureReasonErrorKey ו-NSUnderlyingErrorKey במילון NSError.userInfo יכילו מידע נוסף על השגיאה שבה נתקלת.
FIRUser
שגיאות נפוצות בפעולות של FIRUser
קוד
משמעות
FIRAuthErrorCodeInvalidUserToken
מציין שאסימון הרענון של המשתמש שמחובר לחשבון, שמכיל את פרטי הסשן, לא תקף. צריך לבקש מהמשתמש להיכנס שוב למכשיר הזה.
FIRAuthErrorCodeUserDisabled
הסטטוס הזה מציין שהחשבון של המשתמש מושבת ולא ניתן להשתמש בו יותר עד להפעלה מחדש בחלונית 'משתמשים' במסוף Firebase.
reauthenticateWithCredential:complete:
קוד
משמעות
FIRAuthErrorCodeInvalidCredential
מציין שפרטי הכניסה שסופקו לא חוקיים. זה יכול לקרות אם התוקף שלו פג או שהפורמט שלו שגוי.
FIRAuthErrorCodeInvalidEmail
מציין שכתובת האימייל שגויה, אם פרטי הכניסה הם מסוג EmailPasswordAuthCredential.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה לבצע אימות מחדש עם סיסמה שגויה, אם פרטי הכניסה הם מסוג EmailPasswordAuthCredential.
FIRAuthErrorCodeUserMismatch
מציין שנעשה ניסיון לבצע אימות מחדש מול משתמש שאינו המשתמש הנוכחי.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם ספק הזהויות המיוצג על ידי פרטי הכניסה לא מופעלים. צריך להפעיל אותם בקטע 'אימות' במסוף Firebase.
FIRAuthErrorCodeEmailAlreadyInUse
מציין את כתובת האימייל שצוינה בפרטי הכניסה (למשל, האימייל באסימון גישה של Facebook) כבר נמצא בשימוש של חשבון קיים, שלא ניתן לאמת אותו מחדש בשיטת הכניסה הזו. צריך להתקשר אל fetchProvidersForEmail כדי לקבל את כתובת האימייל של המשתמש הזה, ואז לבקש ממנו להיכנס לחשבון אצל אחד מספקי הכניסה שחוזרים. השגיאה הזו תופיע רק אם בוחרים באפשרות 'חשבון אחד לכל כתובת אימייל' ההגדרה מופעלת במסוף Firebase, בהגדרות של Authentication.
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
updateEmail:complete:
קוד
משמעות
FIRAuthErrorCodeEmailAlreadyInUse
מציין שכתובת האימייל כבר נמצאת בשימוש של חשבון אחר.
FIRAuthErrorCodeInvalidEmail
המשמעות היא שכתובת האימייל לא תקינה.
FIRAuthErrorCodeRequiresRecentLogin
עדכון כתובת האימייל של משתמש הוא פעולה רגישה מבחינת אבטחה, שמחייבת התחברות מהזמן האחרון של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס מספיק לחשבון לאחרונה. כדי לפתור את הבעיה, צריך לאמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
updatePassword:complete:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שהאדמין השבית את הכניסה באמצעות ספק הזהויות שצוין.
FIRAuthErrorCodeRequiresRecentLogin
עדכון סיסמה של משתמש הוא פעולה רגישה מבחינת אבטחה, שמחייבת התחברות מהזמן האחרון של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס מספיק לחשבון לאחרונה. כדי לפתור את הבעיה, צריך לאמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
FIRAuthErrorCodeWeakPassword
הסטטוס הזה מציין ניסיון להגדיר סיסמה שנחשבת לחלשה מדי. השדה NSLocalizedFailureReasonErrorKey באובייקט המילון NSError.userInfo יכיל הסבר מפורט יותר שאפשר להציג למשתמש.
linkWithCredential:complete:
קוד
משמעות
FIRAuthErrorCodeProviderAlreadyLinked
מציין ניסיון לקשר ספק מסוג שכבר מקושר לחשבון הזה.
FIRAuthErrorCodeCredentialAlreadyInUse
מציין ניסיון לקשר פרטי כניסה שכבר קושרו לחשבון Firebase אחר.
FIRAuthErrorCodeOperationNotAllowed
מציין שהחשבונות של ספק הזהויות שמיוצג על ידי פרטי הכניסה לא מופעלים. צריך להפעיל אותם בקטע 'אימות' במסוף Firebase.
מציין ניסיון לבטל את הקישור של ספק שלא מקושר לחשבון.
FIRAuthErrorCodeRequiresRecentLogin
עדכון האימייל הוא פעולה רגישה מבחינת אבטחה שמחייבת התחברות מהזמן האחרון של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס מספיק לחשבון לאחרונה. כדי לפתור את הבעיה, צריך לבצע אימות מחדש של המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
sendEmailAuthenticationWithCompletion:
קוד
משמעות
FIRAuthErrorCodeUserNotFound
הקוד הזה מציין שחשבון המשתמש לא נמצא.
deleteWithCompletion:
קוד
משמעות
FIRAuthErrorCodeRequiresRecentLogin
מחיקה של חשבון משתמש היא פעולה רגישה מבחינת אבטחה שמחייבת התחברות של המשתמש לאחרונה. השגיאה הזו מציינת שהמשתמש לא נכנס מספיק לחשבון לאחרונה. כדי לפתור את הבעיה, צריך לאמת מחדש את המשתמש על ידי הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-25 (שעון UTC)."],[],[],null,[]]