خطأ تهيئة تطبيق Firebase

المشكلة: You attempted to use firebase.app(['DEFAULT']) but this module is not found in React Native.

الحل المقترح:

  • ثبّت وحدة Firebase الصحيحة: استخدم @react-native-firebase/app مع React Native، وليس حزمة SDK الخاصة بالويب.
  • اضبط الملفات الأصلية (Native): نزّل google-services.json (لـ Android) وGoogleService-Info.plist (لـ iOS) من Firebase Console وضعهما في مشروعك وفقًا للوثائق.
  • أعد بناء تطبيقك: على Android، شغّل npx react-native run-android. وعلى iOS، شغّل cd ios && pod install && cd .. && npx react-native run-ios.

خطأ صلاحية APNs (الإشعارات الفورية على iOS)

المشكلة: application:didFailToRegisterForRemoteNotificationsWithError: no valid "aps-environment" entitlement string found for application

الحل:

  • فعّل إمكانية الإشعارات الفورية: في Xcode، ضمن Signing & Capabilities، أضف “Push Notifications.”
  • أعد إنشاء ملفات التهيئة (Provisioning Profiles): بعد التفعيل، حدّث ملفات التهيئة في بوابة Apple Developer ونزّلها مجددًا.
  • نظّف وأعد البناء: نظّف مجلد البناء وأعد بناء التطبيق لضمان تضمين الصلاحيات.

ما هي إمكانية البث (Broadcast Capability) في إشعارات Apple الفورية؟

تتيح إمكانية البث إرسال إشعار فوري واحد لتحديث الأنشطة المباشرة (Live Activities) لعدد كبير من المستخدمين دفعة واحدة باستخدام القنوات.

  • التفعيل: في بوابة Apple Developer، فعّل Broadcast Capability ضمن معرّف تطبيقك في قسم Push Notifications.

وحدة Firebase Messaging غير موجودة

المشكلة: Error: You attempted to use 'firebase.app('[DEFAULT]').messaging' but this module could not be found.

الحل:

  • ثبّت وحدة المراسلة: شغّل npm install @react-native-firebase/messaging (أو yarn add ...).
  • اربط وأعد البناء: على iOS، شغّل cd ios && pod install، ثم أعد بناء تطبيقك.
  • الاستيراد الصحيح: استخدم import messaging from '@react-native-firebase/messaging'; بدلًا من الاستيراد الخاص بحزمة SDK للويب.

(بوابة Firebase) مفتاح مصادقة APNs

كيفية الحصول على مفتاح مصادقة APNs من Apple.

الحل:

  • بوابة Apple Developer: انتقل إلى Certificates, Identifiers & Profiles > Keys > "+" > اختر APNs > Register > نزّل ملف المفتاح .p8.
  • احفظ Key ID وTeam ID: احتفظ بهما لإعداد الخادم في Firebase.

هل تحتاج إلى شهادات APNs SSL؟

  • استخدم النهج الحديث: استخدم مفتاح مصادقة APNs (.p8) في معظم حالات استخدام الإشعارات الفورية.
  • النهج القديم (للتطبيقات القديمة): لا تستخدم شهادات SSL إلا إذا كان مزود الخدمة أو النظام القديم يتطلبها.

messaging() يعمل، واستيراد getApp()

المشكلة: messaging() يعمل، لكن استيراد getApp() من @react-native-firebase/app لا يعمل.

الحل:

  • import { getMessaging } from '@react-native-firebase/messaging'; استخدم getMessaging(getApp()) بدلًا من messaging() مع React Native Firebase.

إذا استخدمت messaging()، فستظهر لك رسالة "Deprecation Warning" (تحذير بإيقاف الدعم)

سيساعدك ذلك على حل جميع المشكلات التي قد تواجهها عند تفعيل Firebase Messaging في React Native.