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

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

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

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

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

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

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

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

رموز الخطأ الخاصة بالطريقة

FIRAuth

FetchProvidersForEmail:الإكمال:

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

SignInWithEmail:password:complete:

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

SignInWithCredential:complete:

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

SignInمجهولlyWithcomplete:

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

SignInWithCustomToken:complete:

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

createUserWithEmail:password:complete:

الرمز المعنى
FIRAuthErrorCodeInvalidEmail يشير إلى كتابة عنوان البريد الإلكتروني بشكل غير صحيح.
FIRAuthErrorCodeEmailAlreadyInUse يشير إلى أنّ عنوان البريد الإلكتروني المُستخدَم لمحاولة الاشتراك متوفّر حاليًا. يمكنك الاتصال بالرقم fetchProvidersForEmail للتحقّق من آليات تسجيل الدخول التي استخدمها هذا المستخدم، ومطالبة المستخدم بتسجيل الدخول باستخدام إحدى هذه الآليات.
FIRAuthErrorCodeOperationNotAllowed يشير إلى عدم تفعيل حسابات البريد الإلكتروني وكلمة المرور. يمكنك تفعيلها من خلال قسم "Authentication" في وحدة تحكّم "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، ضمن إعدادات Authentication.
FIRAuthErrorCodeUserDisabled يشير إلى إيقاف حساب المستخدم.

updateEmail:الإكمال:

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

UpdatePassword:الإكمال:

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

linkWithCredential:الإكمال:

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

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

cancelFromProvider:الإكمال:

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

SendEmailVerifyWithComplete:

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

deleteWithcomplete:

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