اگر برگشت تماس تکمیل در روشهای Authentication آرگومان NSError را دریافت کند که
صفر نیست، خطایی رخ داده است. برای ارسال به منطق مناسب مدیریت خطا در کد تولید، کد خطا را با خطاهای رایج و خطاهای خاص روش که در زیر فهرست شده است بررسی کنید.
برخیاز خطاها را میتوان با کنشهای خاص کاربر برطرف کرد، برای مثال،
FIRAuthErrorCodeUserTokenExpired را میتوان با ورود مجدد کاربر به سیستم برطرف کرد، و FIRAuthErrorCodeWrongPassword را با درخواست از کاربر برای ارائه
گذرواژه صحیح.
بهجز در مورد FIRAuthErrorCodeNetworkError یا
FIRAuthErrorCodeTooManyRequests، تلاش مجدد برای عملیات ناموفق با همان
آرگومانها هرگز موفق نخواهد بود. درباره اینکه آیا عملیات در سمت سرور تأثیر گذاشته است یا نه، هیچ فرضی نکنید.
هنگام بررسی یا ثبت خطاها، userInfo واژهنامه را مرور کنید.
FIRAuthErrorNameKey حاوی رشته نام خطای چندسکویی است که میتوان از آن برای شناسایی خطا استفاده کرد.
NSLocalizedDescriptionKey حاوی شرحی از خطا است. این
شرح برای توسعهدهنده است نه کاربر.
NSUnderlyingErrorKey حاوی خطای زیربنایی است که باعث خطای موردنظر شده است، درصورتیکه خطای زیربنایی وجود داشته باشد.
علاوهبر فیلدهای اصلی فهرستشده در بالا، ممکن است فیلدهای دیگری در
userInfo واژهنامه وجود داشته باشد که هنگام تشخیص خطاهای احتمالی مفید باشند.
کدهای خطای مشترک برای همه روشهای API
| کد |
معنی |
FIRAuthErrorCodeNetworkError |
نشان میدهد که درطول عملیات خطای شبکه رخ داده است. |
FIRAuthErrorCodeUserNotFound |
نشان میدهد که حساب کاربری پیدا نشده است. این اتفاق ممکن است درصورتی رخ دهد که حساب کاربری حذف شده باشد. |
FIRAuthErrorCodeUserTokenExpired |
نشان میدهد که کد کاربری فعلی منقضی شده است، برای مثال، کاربر ممکن است گذرواژه حساب را در دستگاه دیگری تغییر داده باشد. باید از کاربر بخواهید که در این دستگاه دوباره به سیستم وارد شود. |
FIRAuthErrorCodeTooManyRequests |
نشان میدهد که درخواست پساز ارسال تعداد غیرعادی درخواست از دستگاه تماسگیرنده به سرورهای Firebase Authentication مسدود شده است. کمی بعد دوباره امتحان کنید. |
FIRAuthErrorCodeInvalidAPIKey |
نشان میدهد که برنامه با کلید میانای برنامهسازی کاربردی نامعتبر پیکربندی شده است. |
FIRAuthErrorCodeAppNotAuthorized |
نشان میدهد که «برنامه» برای استفاده از «اصالتسنجی Firebase» با «کلید میانای برنامهسازی کاربردی» ارائهشده مجاز نیست. به «کنسول Google 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 |
نشان میدهد که ایمیل ادعاشده توسط اطلاعات اعتباری (برای نمونه، ایمیل موجود در کد دسترسی Facebook) درحالحاضر توسط حساب موجودی استفاده میشود که نمیتواند با این روش ورود به سیستم اصالتسنجی شود. برای ایمیل این کاربر با 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 فعال کنید (به امنیت > اصالتسنجی پیمایش کنید). |
FIRAuthErrorCodeEmailAlreadyInUse |
نشان میدهد که ایمیل ادعاشده توسط اطلاعات اعتباری (برای نمونه، ایمیل موجود در کد دسترسی Facebook) درحالحاضر توسط حساب موجودی استفاده میشود که نمیتواند با این روش ورود به سیستم دوباره اصالتسنجی شود. برای ایمیل این کاربر با 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 فعال کنید (به امنیت > اصالتسنجی > زبانه روش ورود به سیستم بروید). |
این روش ممکن است کدهای خطای مرتبط با
updateEmail:completion: و
updatePassword:completion: در FIRUser را نیز برگرداند.
unlinkFromProvider:completion:
| کد |
معنی |
FIRAuthErrorCodeNoSuchProvider |
نشاندهنده تلاش برای لغو پیوند ارائهدهندهای است که به حساب پیوند نشده است. |
FIRAuthErrorCodeRequiresRecentLogin |
بهروزرسانی ایمیل یک عملیات حساس امنیتی است که نیاز به ورود به سیستم اخیر از کاربر دارد. این خطا نشان میدهد که کاربر بهاندازه کافی اخیراً به سیستم وارد نشده است. برای رفع مشکل، با فراخوانی reauthenticateWithCredential:completion: در FIRUser، کاربر را دوباره اصالتسنجی کنید. |
sendEmailVerificationWithCompletion:
| کد |
معنی |
FIRAuthErrorCodeUserNotFound |
نشان میدهد که حساب کاربری پیدا نشده است. |
deleteWithCompletion:
| کد |
معنی |
FIRAuthErrorCodeRequiresRecentLogin |
حذف حساب کاربری یک عملیات حساس امنیتی است که نیاز به ورود به سیستم اخیر از کاربر دارد. این خطا نشان میدهد که کاربر بهاندازه کافی اخیراً به سیستم وارد نشده است. برای رفع مشکل، با فراخوانی reauthenticateWithCredential:completion: در FIRUser، کاربر را دوباره اصالتسنجی کنید. |