Catch up on highlights from Firebase at Google I/O 2023. Learn more

معالجة أخطاء مصادقة أنظمة Firebase Apple الأساسية

إذا تلقت إعادة استدعاء الإكمال على طرق المصادقة وسيطة NSError ليست صفرية ، فقد حدث خطأ. للإرسال إلى منطق معالجة الأخطاء المناسب في كود الإنتاج الخاص بك ، تحقق من رمز الخطأ مقابل الأخطاء الشائعة والأخطاء الخاصة بالطريقة المدرجة أدناه.

يمكن حل بعض الأخطاء من خلال إجراءات مستخدم معينة ، على سبيل المثال ، يمكن حل FIRAuthErrorCodeUserTokenExpired عن طريق تسجيل دخول المستخدم مرة أخرى ، و FIRAuthErrorCodeWrongPassword عن طريق مطالبة المستخدم بتوفير كلمة المرور الصحيحة.

باستثناء حالة FIRAuthErrorCodeNetworkError أو FIRAuthErrorCodeTooManyRequests ، فلن تنجح إعادة محاولة عملية فاشلة باستخدام نفس الوسيطات. لا تقم بافتراض ما إذا كانت العملية قد دخلت حيز التنفيذ على جانب الخادم أم لا.

عند التحقيق في الأخطاء أو تسجيلها ، راجع قاموس userInfo . يحتوي FIRAuthErrorNameKey على سلسلة اسم خطأ عبر الأنظمة الأساسية يمكن استخدامها لتحديد الخطأ. يحتوي NSLocalizedDescriptionKey على وصف للخطأ. هذا الوصف مخصص للمطور وليس المستخدم. يحتوي NSUnderlyingErrorKey على الخطأ الأساسي الذي تسبب في الخطأ المعني ، في حالة وجود خطأ أساسي.

بالإضافة إلى الحقول الرئيسية المذكورة أعلاه ، يمكن أن يكون هناك حقول أخرى في قاموس userInfo قد تجدها مفيدة عند تشخيص الأخطاء.

أكواد الخطأ الشائعة لجميع طرق API

رمز المعنى
FIRAuthErrorCodeNetworkError يشير إلى حدوث خطأ في الشبكة أثناء العملية.
FIRAuthErrorCodeUserNotFound يشير إلى أنه لم يتم العثور على حساب المستخدم. يمكن أن يحدث هذا إذا تم حذف حساب المستخدم.
FIRAuthErrorCodeUserTokenExpired يشير إلى انتهاء صلاحية رمز المستخدم الحالي ، على سبيل المثال ، ربما قام المستخدم بتغيير كلمة مرور الحساب على جهاز آخر. يجب مطالبة المستخدم بتسجيل الدخول مرة أخرى على هذا الجهاز.
FIRAuthErrorCodeTooManyRequests يشير إلى أنه تم حظر الطلب بعد إجراء عدد غير طبيعي من الطلبات من جهاز المتصل إلى خوادم مصادقة Firebase. أعد المحاولة بعد قليل.
FIRAuthErrorCodeInvalidAPIKey يشير إلى أن التطبيق قد تم تكوينه باستخدام مفتاح API غير صالح.
FIRAuthErrorCodeAppNotAuthorized يشير إلى أن التطبيق غير مصرح له باستخدام مصادقة Firebase مع مفتاح واجهة برمجة التطبيقات المتوفر. انتقل إلى وحدة تحكم Google API وتحقق ضمن علامة تبويب بيانات الاعتماد من أن مفتاح واجهة برمجة التطبيقات الذي تستخدمه قد تم إدراج معرف حزمة التطبيق الخاص بك في القائمة البيضاء.
FIRAuthErrorCodeKeychainError يشير إلى حدوث خطأ أثناء الوصول إلى سلسلة المفاتيح. سيحتوي حقلا NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey في قاموس NSError.userInfo على مزيد من المعلومات حول الخطأ الذي تمت مواجهته.
FIRAuthErrorCodeInternalError يشير إلى حدوث خطأ داخلي. الرجاء الإبلاغ عن الخطأ بكائن NSError بأكمله.

طريقة رموز خطأ محددة

FIRAuth

fetchProvidersForEmail: إكمال:

رمز المعنى
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح.

تسجيل الدخول مع البريد الإلكتروني: كلمة المرور: إكمال:

رمز المعنى
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين حسابات البريد الإلكتروني وكلمات المرور. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح.
FIRAuthErrorCodeUserDisabled يشير إلى أن حساب المستخدم معطل.
FIRAuthErrorCodeWrongPassword يشير إلى أن المستخدم حاول تسجيل الدخول باستخدام كلمة مرور خاطئة.

SignInWithCredential: الإكمال:

رمز المعنى
FIRAuthErrorCodeInvalidCredential يشير إلى أن بيانات الاعتماد المقدمة غير صالحة. يمكن أن يحدث هذا إذا انتهت صلاحيته أو كانت تالفة.
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح ، إذا كانت بيانات الاعتماد من النوع EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين الحسابات مع موفر الهوية الذي يمثله بيانات الاعتماد. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .
FIRAuthErrorCodeEmailAlreadyInUse يشير إلى أن البريد الإلكتروني الذي تم تأكيده بواسطة بيانات الاعتماد (على سبيل المثال ، البريد الإلكتروني في رمز الوصول إلى Facebook) قيد الاستخدام بالفعل بواسطة حساب موجود ، ولا يمكن مصادقته باستخدام طريقة تسجيل الدخول هذه. اتصل بـ fetchProvidersForEmail للبريد الإلكتروني لهذا المستخدم ثم اطلب منه تسجيل الدخول مع إرجاع أي من موفري تسجيل الدخول. لن يظهر هذا الخطأ إلا إذا تم تمكين الإعداد "حساب واحد لكل عنوان بريد إلكتروني" في وحدة تحكم Firebase ، ضمن إعدادات المصادقة.
FIRAuthErrorCodeUserDisabled يشير إلى أن حساب المستخدم معطل.
FIRAuthErrorCodeWrongPassword يشير إلى أن المستخدم حاول تسجيل الدخول باستخدام كلمة مرور خاطئة ، إذا كانت بيانات الاعتماد من النوع EmailPasswordAuthCredential .

تسجيل الدخول مجهول الهوية مع الإكمال:

رمز المعنى
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين الحسابات المجهولة. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .

SignInWithCustomToken: الإكمال:

رمز المعنى
FIRAuthErrorCodeInvalidCustomToken يشير إلى خطأ في التحقق من صحة الرمز المميز المخصص.
FIRAuthErrorCodeCustomTokenMismatch يشير إلى أن حساب الخدمة ومفتاح API ينتميان إلى مشاريع مختلفة.

createUserWithEmail: كلمة المرور: إكمال:

رمز المعنى
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح.
FIRAuthErrorCodeEmailAlreadyInUse يشير إلى أن البريد الإلكتروني المستخدم لمحاولة التسجيل موجود بالفعل. اتصل بـ fetchProvidersForEmail للتحقق من آليات تسجيل الدخول التي استخدمها هذا المستخدم ، واطلب من المستخدم تسجيل الدخول بإحدى تلك الآليات.
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين حسابات البريد الإلكتروني وكلمات المرور. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .
FIRAuthErrorCodeWeakPassword يشير إلى محاولة تعيين كلمة مرور تعتبر ضعيفة للغاية. سيحتوي حقل NSLocalizedFailureReasonErrorKey في كائن قاموس NSError.userInfo على شرح أكثر تفصيلاً يمكن عرضه للمستخدم.

خروج:

رمز المعنى
FIRAuthErrorCodeKeychainError يشير إلى حدوث خطأ عند الوصول إلى سلسلة المفاتيح. سيحتوي حقلا NSLocalizedFailureReasonErrorKey و NSUnderlyingErrorKey في قاموس NSError.userInfo على مزيد من المعلومات حول الخطأ الذي تمت مواجهته.

FIRUser

الأخطاء الشائعة لعمليات FIRUser

رمز المعنى
FIRAuthErrorCodeInvalidUserToken يشير إلى أن رمز التحديث الخاص بالمستخدم الذي قام بتسجيل الدخول ، والذي يحتفظ بمعلومات الجلسة ، غير صالح. يجب مطالبة المستخدم بتسجيل الدخول مرة أخرى على هذا الجهاز.
FIRAuthErrorCodeUserDisabled يشير إلى أن حساب المستخدم معطل ولا يمكن استخدامه بعد الآن حتى يتم تمكينه مرة أخرى من داخل لوحة المستخدمين في وحدة تحكم Firebase.

إعادة المصادقة مع الاعتماد: الإكمال:

رمز المعنى
FIRAuthErrorCodeInvalidCredential يشير إلى أن بيانات الاعتماد المقدمة غير صالحة. يمكن أن يحدث هذا إذا انتهت صلاحيته أو كانت تالفة.
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح ، إذا كانت بيانات الاعتماد من النوع EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword يشير إلى أن المستخدم حاول إعادة المصادقة باستخدام كلمة مرور غير صحيحة ، إذا كانت بيانات الاعتماد من النوع EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch يشير إلى أنه جرت محاولة لإعادة المصادقة مع مستخدم ليس المستخدم الحالي.
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين الحسابات مع موفر الهوية الذي يمثله بيانات الاعتماد. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .
FIRAuthErrorCodeEmailAlreadyInUse يشير إلى أن البريد الإلكتروني الذي تم تأكيده بواسطة بيانات الاعتماد (على سبيل المثال ، البريد الإلكتروني في رمز الوصول إلى Facebook) قيد الاستخدام بالفعل بواسطة حساب موجود ، ولا يمكن إعادة المصادقة عليه باستخدام طريقة تسجيل الدخول هذه. اتصل بـ fetchProvidersForEmail للبريد الإلكتروني لهذا المستخدم ثم اطلب منه تسجيل الدخول مع إرجاع أي من موفري تسجيل الدخول. لن يظهر هذا الخطأ إلا إذا تم تمكين الإعداد "حساب واحد لكل عنوان بريد إلكتروني" في وحدة تحكم Firebase ، ضمن إعدادات المصادقة.
FIRAuthErrorCodeUserDisabled يشير إلى أن حساب المستخدم معطل.

تحديث البريد الإلكتروني: الانتهاء:

رمز المعنى
FIRAuthErrorCodeEmailAlreadyInUse يشير إلى أن البريد الإلكتروني قيد الاستخدام بالفعل من قبل حساب آخر.
FIRAuthErrorCodeInvalidEmail يشير إلى أن عنوان البريد الإلكتروني غير صحيح.
FIRAuthErrorCodeRequiresRecentLogin يعد تحديث البريد الإلكتروني للمستخدم عملية حساسة تتعلق بالأمان وتتطلب تسجيل دخول حديثًا من المستخدم. يشير هذا الخطأ إلى أن المستخدم لم يسجل الدخول مؤخرًا بدرجة كافية. لحل هذه المشكلة ، أعد مصادقة المستخدم عن طريق استدعاء إعادة reauthenticateWithCredential:completion: على FIRUser .

updatePassword: الاكتمال:

رمز المعنى
FIRAuthErrorCodeOperationNotAllowed يشير إلى قيام المسؤول بتعطيل تسجيل الدخول باستخدام موفر الهوية المحدد.
FIRAuthErrorCodeRequiresRecentLogin يعد تحديث كلمة مرور المستخدم عملية حساسة تتعلق بالأمان وتتطلب تسجيل دخول حديثًا من المستخدم. يشير هذا الخطأ إلى أن المستخدم لم يسجل الدخول مؤخرًا بدرجة كافية. لحل هذه المشكلة ، أعد مصادقة المستخدم عن طريق استدعاء إعادة reauthenticateWithCredential:completion: على FIRUser .
FIRAuthErrorCodeWeakPassword يشير إلى محاولة تعيين كلمة مرور تعتبر ضعيفة للغاية. سيحتوي حقل NSLocalizedFailureReasonErrorKey في كائن قاموس NSError.userInfo على شرح أكثر تفصيلاً يمكن عرضه للمستخدم.

linkWithCredential: إكمال:

رمز المعنى
FIRAuthErrorCodeProviderAlreadyLinked يشير إلى محاولة ربط موفر من نوع مرتبط بالفعل بهذا الحساب.
FIRAuthErrorCodeCredentialAlreadyInUse تشير إلى محاولة الارتباط ببيانات اعتماد تم ربطها بالفعل بحساب Firebase مختلف.
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تمكين الحسابات مع موفر الهوية الذي يمثله بيانات الاعتماد. قم بتمكينها في قسم المصادقة بوحدة تحكم Firebase .

قد تُرجع هذه الطريقة أيضًا رموز الخطأ المرتبطة بـ updateEmail:completion: and updatePassword:completion: on FIRUser .

UninkFromProvider: إكمال:

رمز المعنى
FIRAuthErrorCodeNoSuchProvider يشير إلى محاولة إلغاء ربط موفر غير مرتبط بالحساب.
FIRAuthErrorCodeRequiresRecentLogin يعد تحديث البريد الإلكتروني عملية حساسة تتعلق بالأمان وتتطلب تسجيل دخول حديثًا من المستخدم. يشير هذا الخطأ إلى أن المستخدم لم يسجل الدخول مؤخرًا بدرجة كافية. لحل هذه المشكلة ، أعد مصادقة المستخدم عن طريق استدعاء إعادة reauthenticateWithCredential:completion: على FIRUser .

إرسال بريد إلكتروني التحقق مع الإكمال:

رمز المعنى
FIRAuthErrorCodeUserNotFound يشير إلى أنه لم يتم العثور على حساب المستخدم.

deleteWithCompletion:

رمز المعنى
FIRAuthErrorCodeRequiresRecentLogin يعد حذف حساب المستخدم عملية حساسة تتعلق بالأمان وتتطلب تسجيل دخول حديثًا من المستخدم. يشير هذا الخطأ إلى أن المستخدم لم يسجل الدخول مؤخرًا بدرجة كافية. لحل هذه المشكلة ، أعد مصادقة المستخدم عن طريق استدعاء إعادة reauthenticateWithCredential:completion: على FIRUser .