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

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

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

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

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

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

رموز الخطأ الشائعة في جميع طرق واجهة برمجة التطبيقات (API).

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

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

FIRAuth

fetchProvidersForEmail:الاكتمال:

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

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

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

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

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

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

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

تسجيل الدخول مع CustomToken:الاكتمال:

شفرة معنى
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 .

تحديثكلمة المرور:الانتهاء:

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

linkWithCredential:الاكتمال:

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

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

unlinkFromProvider:الاكتمال:

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

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

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

حذف مع الإكمال:

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