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 Auth را مدیریت کنید

اگر پاسخ به تماس اتمام در روش های تأیید هویت دریافت NSError استدلال این است که صفر نیست، یک خطا رخ داده است. برای ارسال به منطق مناسب مدیریت خطا در کد تولید خود ، کد خطا را در برابر خطاهای رایج و خطاهای خاص روش ذکر شده در زیر بررسی کنید.

برخی از اشتباهات را می توان با اقدامات کاربر خاص حل و فصل، برای مثال، FIRAuthErrorCodeUserTokenExpired را می توان با امضای کاربر در دوباره، و حل و فصل FIRAuthErrorCodeWrongPassword با درخواست از کاربران به ارائه رمز عبور است.

به جز در مورد FIRAuthErrorCodeNetworkError یا FIRAuthErrorCodeTooManyRequests ، سعی مجدد یک عملیات شکست با استدلال مشابه هرگز موفق نخواهند شد. هیچ فرض نکنید که آیا عملیات در سمت سرور اعمال شده است یا خیر.

در هنگام بررسی و یا ورود به سیستم خطا، بررسی userInfo فرهنگ لغت. FIRAuthErrorNameKey شامل کراس پلت فرم نام خطای رشته است که می تواند برای شناسایی خطا استفاده می شود. NSLocalizedDescriptionKey شامل شرح از خطا. این توصیف برای توسعه دهنده است ، نه کاربر. NSUnderlyingErrorKey حاوی خطا اساسی که باعث خطا در درخواست، اگر خطا زمینه موجود است.

علاوه بر زمینه های اصلی ذکر شده در بالا، می تواند زمینه های دیگر در وجود دارد userInfo فرهنگ لغت که شما ممکن است زمانی که تشخیص خطاهای مفید است.

کدهای خطا در همه روشهای API مشترک است

کد معنی
FIRAuthErrorCodeNetworkError نشان می دهد که خطای شبکه در حین عملیات رخ داده است.
FIRAuthErrorCodeUserNotFound نشان می دهد حساب کاربری یافت نشد. این ممکن است در صورت حذف حساب کاربری رخ دهد.
FIRAuthErrorCodeUserTokenExpired نشان می دهد که رمز کاربر فعلی منقضی شده است ، به عنوان مثال ، کاربر ممکن است گذرواژه حساب را در دستگاه دیگری تغییر داده باشد. باید از کاربر بخواهید در این دستگاه دوباره وارد سیستم شود.
FIRAuthErrorCodeTooManyRequests نشان می دهد که درخواست پس از ارسال تعداد غیر عادی درخواست ها از دستگاه تماس گیرنده به سرورهای تأیید هویت Firebase مسدود شده است. بعد از مدتی دوباره امتحان کنید.
FIRAuthErrorCodeInvalidAPIKey نشان می دهد که برنامه با یک کلید API نامعتبر پیکربندی شده است.
FIRAuthErrorCodeAppNotAuthorized نشان می دهد که برنامه مجاز به استفاده از احراز هویت Firebase با کلید API ارائه شده نیست. به Google API Console بروید و در زیر برگه اعتبارنامه بررسی کنید که آیا کلید API مورد استفاده شما دارای شناسه بسته نرم افزاری شما در لیست سفید است.
FIRAuthErrorCodeKeychainError نشان می دهد هنگام دسترسی به جاکلیدی خطایی روی داده است. NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey زمینه ها در NSError.userInfo فرهنگ لغت برای اطلاعات بیشتر در مورد خطا مواجه باشد.
FIRAuthErrorCodeInternalError نشان می دهد یک خطای داخلی رخ داده است. لطفا گزارش خطا با کل NSError شی.

کدهای خطای خاص روش

FIRAuth

fetchProvidersForEmail: تکمیل:

کد معنی
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل ناقص است.

signInWithEmail: رمز عبور: تکمیل:

کد معنی
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حساب های ایمیل و رمز عبور فعال نیستند. فعال کردن آنها را در بخش تایید از کنسول فایربیس .
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل نادرست است.
FIRAuthErrorCodeUserDisabled نشان می دهد حساب کاربر غیرفعال است.
FIRAuthErrorCodeWrongPassword نشان می دهد که کاربر با رمز عبور اشتباه وارد سیستم شده است.

signInWithCredential: تکمیل:

کد معنی
FIRAuthErrorCodeInvalidCredential نشان می دهد اعتبار ارائه شده معتبر نیست. اگر منقضی شده باشد یا ناقص باشد ، ممکن است این اتفاق بیفتد.
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل ناقص است، اگر اعتبارنامه از نوع EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حسابهای ارائه دهنده هویت نشان داده شده توسط اعتبار فعال نیستند. فعال کردن آنها را در بخش تایید از کنسول فایربیس .
FIRAuthErrorCodeEmailAlreadyInUse نشان می دهد که ایمیل تأیید شده توسط اعتبارنامه (به عنوان مثال ایمیل در نشانه دسترسی به فیس بوک) قبلاً توسط یک حساب موجود استفاده می شود ، که نمی توان با این روش ورود به سیستم احراز هویت کرد. پاسخ fetchProvidersForEmail برای ایمیل به این کاربر و سپس بی درنگ آنها را به ثبت نام در هر یک از ورود به سیستم ارائه دهندگان بازگشت. این خطا تنها پرتاب خواهد شد اگر "یک حساب در هر آدرس ایمیل" تنظیم در فعال فایربیس کنسول ، تحت تنظیمات احراز هویت.
FIRAuthErrorCodeUserDisabled نشان می دهد حساب کاربر غیرفعال است.
FIRAuthErrorCodeWrongPassword را نشان می دهد نشانه کاربر تلاش در با یک رمز عبور اشتباه است، اگر اعتبارنامه از نوع EmailPasswordAuthCredential .

signIn ناشناس با تکمیل:

کد معنی
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حساب های ناشناس فعال نیستند. فعال کردن آنها را در بخش تایید از کنسول فایربیس .

signInWithCustomToken: تکمیل:

کد معنی
FIRAuthErrorCodeInvalidCustomToken خطای اعتبار سنجی با رمز سفارشی را نشان می دهد.
FIRAuthErrorCodeCustomTokenMismatch نشان دهنده حساب خدمات و کلید API متعلق به پروژه های مختلف است.

createUserWithEmail: رمز عبور: تکمیل:

کد معنی
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل ناقص است.
FIRAuthErrorCodeEmailAlreadyInUse نشان می دهد ایمیل مورد استفاده برای تلاش برای ثبت نام در حال حاضر وجود دارد. پاسخ fetchProvidersForEmail برای بررسی که ورود به سیستم مکانیسم های مانند کاربران استفاده می شود، و سریع کاربر به سیستم وارد شوید با یکی از آن.
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حساب های ایمیل و رمز عبور فعال نیستند. فعال کردن آنها را در بخش احراز هویت از کنسول فایربیس .
FIRAuthErrorCodeWeakPassword نشان دهنده تلاش برای تنظیم گذرواژه ای است که بسیار ضعیف تلقی می شود. NSLocalizedFailureReasonErrorKey زمینه در NSError.userInfo فرهنگ لغت شی توضیح مفصل تر است که می تواند به کاربر نشان داده باشد.

خروج از سیستم:

کد معنی
FIRAuthErrorCodeKeychainError نشان می دهد هنگام دسترسی به جاکلیدی خطایی روی داده است. NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey زمینه ها در NSError.userInfo فرهنگ لغت برای اطلاعات بیشتر در مورد خطا مواجه باشد.

FIRUser

خطاهای رایج برای عملیات FIRUser

کد معنی
FIRAuthErrorCodeInvalidUserToken نشان می دهد که رمز بازخوانی کاربر وارد شده ، که اطلاعات جلسه را در خود دارد ، معتبر نیست. باید از کاربر بخواهید در این دستگاه دوباره وارد سیستم شود.
FIRAuthErrorCodeUserDisabled نشان می دهد که حساب کاربر غیرفعال است و تا زمانی که دوباره از داخل پنل کاربران در کنسول Firebase فعال نشود ، دیگر نمی توان از آن استفاده کرد.

reauthenticateWithCredential: تکمیل:

کد معنی
FIRAuthErrorCodeInvalidCredential نشان می دهد اعتبار ارائه شده معتبر نیست. اگر منقضی شده باشد یا ناقص باشد ، ممکن است این اتفاق بیفتد.
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل ناقص است، اگر اعتبارنامه از نوع EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword نشان می دهد که کاربر تلاش احراز هویت مجدد با رمز عبور اشتباه، اگر اعتبارنامه از نوع EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch نشان می دهد که تلاش شده است با کاربر دیگری که کاربر فعلی نیست ، احراز هویت مجدد شود.
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حسابهای ارائه دهنده هویت نشان داده شده توسط اعتبار فعال نیستند. فعال کردن آنها را در بخش تایید از کنسول فایربیس .
FIRAuthErrorCodeEmailAlreadyInUse نشان می دهد ایمیلی که توسط اعتبارنامه تأیید شده است (به عنوان مثال ایمیل در نشانه دسترسی به فیس بوک) قبلاً توسط یک حساب موجود استفاده می شود ، که با این روش ورود مجدد قابل احراز هویت نیست. پاسخ fetchProvidersForEmail برای ایمیل به این کاربر و سپس بی درنگ آنها را به ثبت نام در هر یک از ورود به سیستم ارائه دهندگان بازگشت. این خطا تنها پرتاب خواهد شد اگر "یک حساب در هر آدرس ایمیل" تنظیم در فعال فایربیس کنسول ، تحت تنظیمات احراز هویت.
FIRAuthErrorCodeUserDisabled نشان می دهد حساب کاربر غیرفعال است.

updateEmail: تکمیل:

کد معنی
FIRAuthErrorCodeEmailAlreadyInUse نشان می دهد ایمیل قبلاً توسط حساب دیگری استفاده می شود.
FIRAuthErrorCodeInvalidEmail نشان می دهد آدرس ایمیل ناقص است.
FIRAuthErrorCodeRequiresRecentLogin به روز رسانی ایمیل کاربر یک عملیات حساس امنیتی است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل و فصل، reauthenticate کاربر با استناد reauthenticateWithCredential:completion: در FIRUser .

updatePassword: تکمیل:

کد معنی
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که سرپرست وارد سیستم غیرفعال شده با ارائه دهنده هویت مشخص شده است.
FIRAuthErrorCodeRequiresRecentLogin به روز رسانی رمز عبور کاربر یک عملیات حساس امنیتی است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل و فصل، reauthenticate کاربر با استناد reauthenticateWithCredential:completion: در FIRUser .
FIRAuthErrorCodeWeakPassword نشان دهنده تلاش برای تنظیم گذرواژه ای است که بسیار ضعیف تلقی می شود. NSLocalizedFailureReasonErrorKey زمینه در NSError.userInfo فرهنگ لغت شی توضیح مفصل تر است که می تواند به کاربر نشان داده باشد.

linkWithCredential: تکمیل:

کد معنی
FIRAuthErrorCodeProviderAlreadyLinked نشان دهنده تلاش برای پیوند دادن ارائه دهنده ای است که قبلاً به این حساب پیوند خورده است.
FIRAuthErrorCodeCredentialAlreadyInUse نشان دهنده تلاش برای پیوند با اعتبارنامه ای است که قبلاً با یک حساب Firebase متفاوت پیوند خورده است.
FIRAuthErrorCodeOperationNotAllowed نشان می دهد که حسابهای ارائه دهنده هویت نشان داده شده توسط اعتبار فعال نیستند. فعال کردن آنها را در بخش تایید از کنسول فایربیس .

این روش همچنین ممکن است کدهای خطا در ارتباط با بازگشت updateEmail:completion: و updatePassword:completion: در FIRUser .

unlinkFromProvider: تکمیل:

کد معنی
FIRAuthErrorCodeNoSuchProvider نشان دهنده تلاش برای قطع پیوند ارائه دهنده ای است که به حساب متصل نیست.
FIRAuthErrorCodeRequiresRecentLogin به روز رسانی ایمیل یک عملیات حساس امنیتی است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل و فصل، reauthenticate کاربر با استناد reauthenticateWithCredential:completion: در FIRUser .

sendEmailVerificationWithCompletion:

کد معنی
FIRAuthErrorCodeUserNotFound نشان می دهد حساب کاربری یافت نشد.

deleteWithCompletion:

کد معنی
FIRAuthErrorCodeRequiresRecentLogin حذف حساب کاربری یک عملیات حساس به امنیت است که نیاز به ورود اخیر کاربر دارد. این خطا نشان می دهد که کاربر اخیراً به اندازه کافی وارد سیستم نشده است. برای حل و فصل، reauthenticate کاربر با استناد reauthenticateWithCredential:completion: در FIRUser .