اگر فراخوان تکمیل در متدهای Authentication آرگومان NSError را دریافت کند که صفر نیست، خطایی رخ داده است. برای ارسال به منطق مناسب رسیدگی به خطا در کد تولید خود، کد خطا را در برابر خطاهای رایج و خطاهای خاص روش فهرست شده در زیر بررسی کنید.
برخی از خطاها را می توان با اقدامات کاربر خاص حل کرد، به عنوان مثال، FIRAuthErrorCodeUserTokenExpired را می توان با ورود مجدد کاربر به سیستم، و FIRAuthErrorCodeWrongPassword با درخواست از کاربر برای ارائه رمز عبور درست حل کرد.
به جز در مورد FIRAuthErrorCodeNetworkError یا FIRAuthErrorCodeTooManyRequests ، تلاش مجدد یک عملیات ناموفق با همان آرگومان ها هرگز موفق نخواهد بود. هیچ فرضی مبنی بر اینکه آیا این عملیات روی سمت سرور اثر گذاشته است یا خیر.
هنگام بررسی یا ثبت خطاها، فرهنگ لغت userInfo مرور کنید. FIRAuthErrorNameKey حاوی یک رشته نام خطای چند پلتفرمی است که می تواند برای شناسایی خطا استفاده شود. NSLocalizedDescriptionKey حاوی شرحی از خطا است. این توضیحات برای توسعه دهنده است، نه کاربر. NSUnderlyingErrorKey حاوی خطای اساسی است که باعث خطای مورد نظر شده است، اگر یک خطای اساسی وجود داشته باشد.
علاوه بر فیلدهای اصلی فهرست شده در بالا، فیلدهای دیگری نیز در فرهنگ لغت userInfo وجود دارد که ممکن است در هنگام تشخیص خطاها مفید باشند.
کدهای خطا مشترک در همه روش های API
کد
معنی
FIRAuthErrorCodeNetworkError
نشان می دهد که یک خطای شبکه در طول عملیات رخ داده است.
FIRAuthErrorCodeUserNotFound
نشان می دهد که حساب کاربری پیدا نشد. اگر حساب کاربری حذف شده باشد ممکن است این اتفاق بیفتد.
FIRAuthErrorCodeUserTokenExpired
نشان می دهد که رمز کاربر فعلی منقضی شده است، به عنوان مثال، کاربر ممکن است رمز عبور حساب را در دستگاه دیگری تغییر داده باشد. باید از کاربر بخواهید دوباره در این دستگاه وارد سیستم شود.
FIRAuthErrorCodeTooManyRequests
نشان می دهد که پس از ارسال تعداد غیرعادی درخواست از دستگاه تماس گیرنده به سرورهای Firebase Authentication درخواست مسدود شده است. بعد از مدتی دوباره سعی کنید.
FIRAuthErrorCodeInvalidAPIKey
نشان می دهد که برنامه با یک کلید API نامعتبر پیکربندی شده است.
FIRAuthErrorCodeAppNotAuthorized
نشان می دهد که برنامه مجاز به استفاده از احراز هویت Firebase با کلید API ارائه شده نیست. به کنسول API Google بروید و در زیر برگه اعتبارنامه ها بررسی کنید که کلید API مورد استفاده شما دارای شناسه بسته نرم افزاری شما در لیست سفید باشد.
FIRAuthErrorCodeKeychainError
نشان می دهد که هنگام دسترسی به دسته کلید خطایی رخ داده است. فیلدهای NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey در فرهنگ لغت NSError.userInfo حاوی اطلاعات بیشتری درباره خطای رخ داده خواهد بود.
FIRAuthErrorCodeInternalError
نشان دهنده یک خطای داخلی است. لطفاً خطا را با کل شیء NSError گزارش دهید.
کدهای خطای خاص روش
FIRAuth
fetchProvidersForEmail:completion:
کد
معنی
FIRAuthErrorCodeInvalidEmail
نشان می دهد که آدرس ایمیل نادرست است.
signInWithEmail:password:completion:
کد
معنی
FIRAuthErrorCodeOperationNotAllowed
نشان می دهد که حساب های ایمیل و رمز عبور فعال نیستند. آنها را در بخش Auth کنسول Firebase فعال کنید.
FIRAuthErrorCodeInvalidEmail
نشان می دهد که آدرس ایمیل نادرست است.
FIRAuthErrorCodeUserDisabled
نشان می دهد که حساب کاربر غیرفعال است.
FIRAuthErrorCodeWrongPassword
نشان می دهد که کاربر با رمز عبور اشتباه وارد سیستم شده است.
signInWithCredential:completion:
کد
معنی
FIRAuthErrorCodeInvalidCredential
نشان می دهد که اعتبار ارائه شده نامعتبر است. این ممکن است در صورتی اتفاق بیفتد که تاریخ مصرف آن تمام شده باشد یا بدشکل باشد.
FIRAuthErrorCodeInvalidEmail
اگر اعتبارنامه از نوع EmailPasswordAuthCredential باشد نشان می دهد که آدرس ایمیل نادرست است.
FIRAuthErrorCodeOperationNotAllowed
نشان میدهد که حسابهای دارای ارائهدهنده هویت که توسط اعتبارنامه نشان داده شده است، فعال نیستند. آنها را در بخش Auth کنسول Firebase فعال کنید.
FIRAuthErrorCodeEmailAlreadyInUse
نشان میدهد که ایمیلی که توسط اعتبار تأیید شده است (مثلاً ایمیل موجود در یک نشانه دسترسی فیسبوک) قبلاً توسط یک حساب موجود استفاده میشود، که با این روش ورود به سیستم نمیتوان آن را احراز هویت کرد. برای ایمیل این کاربر با fetchProvidersForEmail تماس بگیرید و سپس از آنها بخواهید با هر یک از ارائه دهندگان ورود به سیستم بازگردانده شده وارد سیستم شوند. این خطا تنها در صورتی رخ میدهد که تنظیم «یک حساب برای هر آدرس ایمیل» در کنسول Firebase در تنظیمات Authentication فعال باشد.
FIRAuthErrorCodeUserDisabled
نشان می دهد که حساب کاربر غیرفعال است.
FIRAuthErrorCodeWrongPassword
نشان می دهد که کاربر سعی کرده با رمز عبور اشتباه وارد سیستم شود، اگر اعتبار از نوع EmailPasswordAuthCredential باشد.
signInAnonymouslyWithCompletion:
کد
معنی
FIRAuthErrorCodeOperationNotAllowed
نشان می دهد که حساب های ناشناس فعال نیستند. آنها را در بخش Auth کنسول Firebase فعال کنید.
signInWithCustomToken:completion:
کد
معنی
FIRAuthErrorCodeInvalidCustomToken
نشان دهنده یک خطای اعتبارسنجی با توکن سفارشی است.
FIRAuthErrorCodeCustomTokenMismatch
نشان می دهد که حساب سرویس و کلید API متعلق به پروژه های مختلف است.
createUserWithEmail:password:completion:
کد
معنی
FIRAuthErrorCodeInvalidEmail
نشان می دهد که آدرس ایمیل نادرست است.
FIRAuthErrorCodeEmailAlreadyInUse
نشان می دهد ایمیل استفاده شده برای ثبت نام از قبل وجود دارد. با fetchProvidersForEmail تماس بگیرید تا بررسی کنید که این کاربر از کدام مکانیسمهای ورود استفاده میکند و از کاربر بخواهید با یکی از آنها وارد سیستم شود.
FIRAuthErrorCodeOperationNotAllowed
نشان می دهد که حساب های ایمیل و رمز عبور فعال نیستند. آنها را در بخش Authenticationکنسول Firebase فعال کنید.
FIRAuthErrorCodeWeakPassword
نشان دهنده تلاش برای تنظیم رمز عبوری است که خیلی ضعیف در نظر گرفته می شود. فیلد NSLocalizedFailureReasonErrorKey در شی فرهنگ لغت NSError.userInfo حاوی توضیحات دقیق تری است که می تواند به کاربر نشان داده شود.
خروج از سیستم:
کد
معنی
FIRAuthErrorCodeKeychainError
نشان داد که هنگام دسترسی به دسته کلید خطایی رخ داده است. فیلدهای NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey در فرهنگ لغت NSError.userInfo حاوی اطلاعات بیشتری درباره خطای رخ داده خواهد بود.
FIRUser
خطاهای رایج برای عملیات FIRUser
کد
معنی
FIRAuthErrorCodeInvalidUserToken
نشان می دهد که رمز بازخوانی کاربر وارد شده، که اطلاعات جلسه را نگه می دارد، نامعتبر است. باید از کاربر بخواهید دوباره در این دستگاه وارد سیستم شود.
FIRAuthErrorCodeUserDisabled
نشان می دهد که حساب کاربر غیرفعال است و تا زمانی که دوباره از پانل کاربران در کنسول Firebase فعال نشود، دیگر نمی توان از آن استفاده کرد.
reauthenticateWithCredential:completion:
کد
معنی
FIRAuthErrorCodeInvalidCredential
نشان می دهد که اعتبار ارائه شده نامعتبر است. این ممکن است در صورتی اتفاق بیفتد که تاریخ مصرف آن تمام شده باشد یا بدشکل باشد.
FIRAuthErrorCodeInvalidEmail
اگر اعتبارنامه از نوع EmailPasswordAuthCredential باشد نشان می دهد که آدرس ایمیل نادرست است.
FIRAuthErrorCodeWrongPassword
اگر اطلاعات کاربری از نوع EmailPasswordAuthCredential باشد، نشان میدهد که کاربر با رمز عبور نادرست برای احراز هویت مجدد تلاش کرده است.
FIRAuthErrorCodeUserMismatch
نشان می دهد که تلاشی برای احراز هویت مجدد با کاربری که کاربر فعلی نیست انجام شده است.
FIRAuthErrorCodeOperationNotAllowed
نشان میدهد که حسابهای دارای ارائهدهنده هویت که توسط اعتبارنامه نشان داده شده است، فعال نیستند. آنها را در بخش Auth کنسول Firebase فعال کنید.
FIRAuthErrorCodeEmailAlreadyInUse
نشان میدهد که ایمیلی که توسط اعتبار تأیید شده است (مثلاً ایمیل در یک نشانه دسترسی فیسبوک) قبلاً توسط یک حساب موجود استفاده میشود، که با این روش ورود مجدد نمیتوان آن را احراز هویت کرد. برای ایمیل این کاربر با fetchProvidersForEmail تماس بگیرید و سپس از آنها بخواهید با هر یک از ارائه دهندگان ورود به سیستم بازگردانده شده وارد سیستم شوند. این خطا تنها در صورتی رخ میدهد که تنظیم «یک حساب برای هر آدرس ایمیل» در کنسول Firebase در تنظیمات Authentication فعال باشد.
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
نشان میدهد که حسابهای دارای ارائهدهنده هویت که توسط اعتبارنامه نشان داده شده است، فعال نیستند. آنها را در بخش Auth کنسول Firebase فعال کنید.
نشان دهنده تلاش برای لغو پیوند ارائه دهنده ای است که به حساب مرتبط نیست.
FIRAuthErrorCodeRequiresRecentLogin
به روز رسانی ایمیل یک عملیات حساس امنیتی است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل این مشکل، با فراخوانی reauthenticateWithCredential:completion: در FIRUser ، کاربر را دوباره احراز هویت کنید.
sendEmailVerificationWithCompletion:
کد
معنی
FIRAuthErrorCodeUserNotFound
نشان می دهد که حساب کاربری پیدا نشد.
deleteWithCompletion:
کد
معنی
FIRAuthErrorCodeRequiresRecentLogin
حذف یک حساب کاربری یک عملیات حساس امنیتی است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل این مشکل، با فراخوانی reauthenticateWithCredential:completion: در FIRUser ، کاربر را دوباره احراز هویت کنید.
تاریخ آخرین بهروزرسانی 2025-02-28 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-02-28 بهوقت ساعت هماهنگ جهانی."],[],[]]