טיפול בשגיאות אימות של מוצרי הפלטפורמה של Firebase ב-Firebase
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
אם פונקציית ה-callback להשלמה בשיטות Authentication מקבלת ארגומנט NSError שאינו nil, אירעה שגיאה. כדי לשלוח ללוגיקה המתאימה לטיפול בשגיאות בקוד הייצור, צריך לבדוק את קוד השגיאה מול השגיאות הנפוצות והשגיאות הספציפיות לשיטה שמפורטות בהמשך.
חלק מהשגיאות אפשר לפתור באמצעות פעולות ספציפיות של המשתמש. לדוגמה, אפשר לפתור את השגיאה FIRAuthErrorCodeUserTokenExpired על ידי כניסה מחדש של המשתמש לחשבון, ואת השגיאה FIRAuthErrorCodeWrongPassword על ידי בקשה מהמשתמש להזין את הסיסמה הנכונה.
למעט במקרים של FIRAuthErrorCodeNetworkError או FIRAuthErrorCodeTooManyRequests, ניסיון חוזר של פעולה שנכשלה עם אותם ארגומנטים לא יצליח אף פעם. אל תניחו שהפעולה נכנסה לתוקף בצד השרת.
כשבודקים שגיאות או מתעדים אותן, כדאי לעיין במילון userInfo.
FIRAuthErrorNameKey מכיל מחרוזת של שם שגיאה בפלטפורמות שונות שאפשר להשתמש בה כדי לזהות את השגיאה.
השדה NSLocalizedDescriptionKey מכיל תיאור של השגיאה. התיאור הזה מיועד למפתח, ולא למשתמש.
NSUnderlyingErrorKey מכיל את השגיאה הבסיסית שגרמה לשגיאה המדוברת, אם קיימת שגיאה בסיסית.
בנוסף לשדות העיקריים שצוינו למעלה, יכולים להיות עוד שדות במילון userInfo שיכולים לעזור לכם באבחון שגיאות.
קודי שגיאה שמשותפים לכל ה-methods של ה-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:completion:
קוד
משמעות
FIRAuthErrorCodeInvalidEmail
מציין שכתובת האימייל לא תקינה.
signInWithEmail:password:completion:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם כתובת אימייל וסיסמה לא מופעלים. מפעילים אותם במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה שיטת כניסה).
FIRAuthErrorCodeInvalidEmail
מציין שכתובת האימייל לא תקינה.
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה להיכנס לחשבון עם סיסמה שגויה.
signInWithCredential:completion:
קוד
משמעות
FIRAuthErrorCodeInvalidCredential
מציין שהאישורים שסופקו לא תקפים. יכול להיות שהתוקף שלו פג או שהוא לא תקין.
FIRAuthErrorCodeInvalidEmail
אם סוג האישורים הוא EmailPasswordAuthCredential, הערך הזה מציין שהפורמט של כתובת האימייל שגוי.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם ספק הזהויות שמיוצג על ידי פרטי הכניסה לא מופעלים. מפעילים אותם במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה שיטת כניסה).
FIRAuthErrorCodeEmailAlreadyInUse
מציין שכתובת האימייל שמאומתת על ידי פרטי הכניסה (לדוגמה, כתובת האימייל באסימון גישה של פייסבוק) כבר נמצאת בשימוש בחשבון קיים, שלא ניתן לאמת אותו באמצעות שיטת הכניסה הזו. קוראים ל-fetchProvidersForEmail כדי לקבל את כתובת האימייל של המשתמש, ואז מבקשים ממנו להיכנס באמצעות אחד מספקי הכניסה שמוחזרים. השגיאה הזו תוצג רק אם האפשרות 'חשבון אחד לכל כתובת אימייל' מופעלת במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה הגדרות).
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה להיכנס עם סיסמה שגויה, אם פרטי הכניסה הם מהסוג EmailPasswordAuthCredential.
signInAnonymouslyWithCompletion:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות אנונימיים לא מופעלים. מפעילים אותם במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה שיטת כניסה).
signInWithCustomToken:completion:
קוד
משמעות
FIRAuthErrorCodeInvalidCustomToken
מציין שגיאת אימות בטוקן המותאם אישית.
FIRAuthErrorCodeCustomTokenMismatch
מציין שחשבון השירות ומפתח ה-API שייכים לפרויקטים שונים.
createUserWithEmail:password:completion:
קוד
משמעות
FIRAuthErrorCodeInvalidEmail
מציין שכתובת האימייל לא תקינה.
FIRAuthErrorCodeEmailAlreadyInUse
הודעה שמופיעה אם כתובת האימייל שבה ניסיתם להירשם כבר קיימת. מתקשרים אל fetchProvidersForEmail כדי לבדוק באילו מנגנוני כניסה המשתמש השתמש, ומבקשים מהמשתמש להיכנס באמצעות אחד מהם.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם כתובת אימייל וסיסמה לא מופעלים. מפעילים אותם במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה שיטת כניסה).
FIRAuthErrorCodeWeakPassword
מציין ניסיון להגדיר סיסמה שנחשבת חלשה מדי. השדה NSLocalizedFailureReasonErrorKey באובייקט המילון NSError.userInfo יכיל הסבר מפורט יותר שאפשר להציג למשתמש.
signOut:
קוד
משמעות
FIRAuthErrorCodeKeychainError
הודעה על שגיאה שקרתה בזמן הגישה למחזיק המפתחות. השדות NSLocalizedFailureReasonErrorKey ו-NSUnderlyingErrorKey במילון NSError.userInfo יכילו מידע נוסף על השגיאה שנתקלתם בה.
FIRUser
שגיאות נפוצות בפעולות של FIRUser
קוד
משמעות
FIRAuthErrorCodeInvalidUserToken
מציין שאסימון הרענון של המשתמש שמחובר לחשבון, שמכיל פרטי סשן, לא תקין. צריך לבקש מהמשתמש להיכנס שוב למכשיר.
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת ואי אפשר להשתמש בו יותר עד שמפעילים אותו מחדש במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה משתמשים).
reauthenticateWithCredential:completion:
קוד
משמעות
FIRAuthErrorCodeInvalidCredential
מציין שהאישורים שסופקו לא תקפים. יכול להיות שהתוקף שלו פג או שהוא לא תקין.
FIRAuthErrorCodeInvalidEmail
אם סוג האישורים הוא EmailPasswordAuthCredential, הערך הזה מציין שהפורמט של כתובת האימייל שגוי.
FIRAuthErrorCodeWrongPassword
מציין שהמשתמש ניסה לבצע אימות מחדש עם סיסמה שגויה, אם פרטי הכניסה הם מהסוג EmailPasswordAuthCredential.
FIRAuthErrorCodeUserMismatch
מציין שהייתה ניסיון לאמת מחדש משתמש שלא מחובר כרגע.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם ספק הזהויות שמיוצג על ידי פרטי הכניסה לא מופעלים. כדי להפעיל אותם במסוף Firebase, עוברים אל Security (אבטחה) > Authentication (אימות).
FIRAuthErrorCodeEmailAlreadyInUse
מציין שכתובת האימייל שצוינה על ידי פרטי הכניסה (למשל, כתובת האימייל בטוקן גישה של פייסבוק) כבר נמצאת בשימוש בחשבון קיים, ואי אפשר לאמת מחדש את החשבון הזה באמצעות שיטת הכניסה הזו. קוראים ל-fetchProvidersForEmail כדי לקבל את כתובת האימייל של המשתמש, ואז מבקשים ממנו להיכנס באמצעות אחד מספקי הכניסה שמוחזרים. השגיאה הזו תוצג רק אם האפשרות 'חשבון אחד לכל כתובת אימייל' מופעלת במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה הגדרות).
FIRAuthErrorCodeUserDisabled
מציין שהחשבון של המשתמש מושבת.
updateEmail:completion:
קוד
משמעות
FIRAuthErrorCodeEmailAlreadyInUse
מציין שכתובת האימייל כבר נמצאת בשימוש בחשבון אחר.
FIRAuthErrorCodeInvalidEmail
מציין שכתובת האימייל לא תקינה.
FIRAuthErrorCodeRequiresRecentLogin
עדכון כתובת האימייל של משתמש הוא פעולה רגישה מבחינת אבטחה, שנדרשת לגביה התחברות עדכנית של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס לחשבון בזמן האחרון. כדי לפתור את הבעיה, צריך לאמת מחדש את המשתמש באמצעות הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
updatePassword:completion:
קוד
משמעות
FIRAuthErrorCodeOperationNotAllowed
מציין שהאדמין השבית את הכניסה באמצעות ספק הזהויות שצוין.
FIRAuthErrorCodeRequiresRecentLogin
עדכון הסיסמה של משתמש הוא פעולה רגישה מבחינת אבטחה, שנדרשת לגביה התחברות עדכנית של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס לחשבון בזמן האחרון. כדי לפתור את הבעיה, צריך לבצע אימות מחדש של המשתמש באמצעות הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
FIRAuthErrorCodeWeakPassword
מציין ניסיון להגדיר סיסמה שנחשבת חלשה מדי. השדה NSLocalizedFailureReasonErrorKey באובייקט המילון NSError.userInfo יכיל הסבר מפורט יותר שאפשר להציג למשתמש.
linkWithCredential:completion:
קוד
משמעות
FIRAuthErrorCodeProviderAlreadyLinked
מציין ניסיון לקשר ספק מסוג שכבר מקושר לחשבון הזה.
FIRAuthErrorCodeCredentialAlreadyInUse
מציין ניסיון לקשר אישורים שכבר קושרו לחשבון Firebase אחר.
FIRAuthErrorCodeOperationNotAllowed
מציין שחשבונות עם ספק הזהויות שמיוצג על ידי פרטי הכניסה לא מופעלים. מפעילים אותם במסוף Firebase (עוברים אל אבטחה > אימות > הכרטיסייה שיטת כניסה).
האינדיקטור הזה מציין ניסיון לבטל את הקישור של ספק שלא מקושר לחשבון.
FIRAuthErrorCodeRequiresRecentLogin
עדכון כתובת האימייל היא פעולה רגישה מבחינת אבטחה, שמחייבת התחברות עדכנית של המשתמש. השגיאה הזו מציינת שהמשתמש לא נכנס לחשבון בזמן האחרון. כדי לפתור את הבעיה, צריך לבצע אימות מחדש של המשתמש באמצעות הפעלת reauthenticateWithCredential:completion: ב-FIRUser.
sendEmailVerificationWithCompletion:
קוד
משמעות
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"]],["עדכון אחרון: 2026-06-28 (שעון UTC)."],[],[]]