إضافة Firebase إلى مشروع C++ الخاص بك

عزِّز قدرات ألعاب C++ الخاصة بك باستخدام حزم SDK لـ Firebase C++ التي توفر واجهة C++ فوق حزم Firebase SDK.

يمكنك الوصول إلى Firebase بالكامل من خلال رمز C++ ، بدون الحاجة إلى كتابة أي رمز برمجي أصلي من النظام الأساسي. كما تعمل حزمة Firebase SDK على ترجمة العديد من المصطلحات الخاصة باللغة التي يستخدمها Firebase إلى واجهة أكثر دراية بمطوري برامج C++.

يمكنك الاطّلاع على مزيد من المعلومات حول تحسين أداء ألعابك باستخدام Firebase من خلال صفحة ألعاب Firebase.

هل أضفت Firebase بالفعل إلى مشروع C++ الخاص بك؟ تأكَّد من استخدام أحدث إصدار من حزمة تطوير البرامج (SDK) بلغة Firebase C++.

المتطلّبات الأساسية

  • ثبِّت ما يلي:

    • Xcode 13.3.1 أو إصدار أحدث
    • الإصدار 1.12.0 من CocoaPods أو إصدار أحدث
  • تأكد من أن مشروعك يستهدف إصدارات النظام الأساسي التالية أو الإصدارات الأحدث:

    • الإصدار 11 من نظام التشغيل iOS
    • نظام التشغيل tvOS 12
  • يمكنك إعداد جهاز فعلي أو استخدام المحاكي لتشغيل تطبيقك.

  • سجّل الدخول إلى Firebase باستخدام حسابك على Google.

الخطوة 2: إنشاء مشروع على Firebase

قبل أن تتمكن من إضافة Firebase إلى مشروع C++ الخاص بك، ستحتاج إلى إنشاء مشروع Firebase للاتصال بمشروع C++ الخاص بك. يمكنك الانتقال إلى صفحة فهم مشاريع Firebase لمزيد من المعلومات حول مشاريع Firebase.

الخطوة 3: تسجيل تطبيقك في Firebase

لاستخدام Firebase في تطبيق Apple، يجب تسجيل تطبيقك في مشروع Firebase. غالبًا ما يطلق على تسجيل تطبيقك "إضافة" التطبيق إلى مشروعك.

  1. انتقِل إلى وحدة تحكُّم Firebase.

  2. في منتصف صفحة "نظرة عامة على المشروع"، انقر على الرمز +iOS لبدء عملية الإعداد.

    إذا سبق وأضفت تطبيقًا إلى مشروع Firebase، انقر على إضافة تطبيق لعرض خيارات النظام الأساسي.

  3. أدخِل معرّف حزمة التطبيق في الحقل معرّف الحزمة.

  4. (اختياري) أدخِل معلومات التطبيق الأخرى: اسم التطبيق ورقم تعريف متجر التطبيقات.

  5. انقر على تسجيل التطبيق.

الخطوة 4: إضافة ملف إعداد Firebase

  1. انقر على Download GoogleService-Info.plist (تنزيل GoogleService-Info.plist) للحصول على ملف إعداد Firebase Apple .

  2. افتح مشروع C++ في بيئة IDE، ثم اسحب ملف التكوين إلى جذر مشروع C++.

  3. اختَر إضافة ملف الإعداد إلى جميع الأهداف، إذا طُلب منك ذلك.

لقد انتهيت من عملية الإعداد في "وحدة تحكُّم Firebase". يمكنك المتابعة إلى إضافة حِزم تطوير البرامج (SDK) لمنصّة Firebase C++ أدناه.

الخطوة 5: إضافة حِزم تطوير البرامج (SDK) لمنصة Firebase C++

الخطوات الواردة في هذا القسم هي مثال على كيفية إضافة منتجات Firebase المتوافقة إلى مشروع Firebase C++.

  1. يمكنك تنزيل حزمة تطوير البرامج (SDK) لـ Firebase C++، ثم فك ضغط حزمة SDK في مكان مناسب.

    ولا ترتبط حزمة تطوير البرامج (SDK) لمنصة Firebase C++ بالنظام الأساسي، ولكنها تحتوي على مكتبات خاصة بالنظام الأساسي.

  2. أضِف مجموعات Firebase من حزمة تطوير البرامج (SDK) غير المضغوطة.

    1. يمكنك إنشاء ملف Podfile إذا لم يكن لديك ملف شخصي حاليًا:

      cd your-app-directory
      pod init

    2. إلى Podfile، أضِف مجموعات Firebase التي تريد استخدامها في تطبيقك.

      تفعيل الإحصاءات

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      عدم تفعيل الإحصاءات

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. ثبِّت المجموعات، ثم افتح ملف .xcworkspace في Xcode.

      pod install
      open your-app.xcworkspace

  3. أضف أطر Firebase من حزمة SDK غير المضغوطة.

    إنّ أسهل طريقة لإضافة أطر العمل هذه هي عادةً سحبها من Finder نافذة مباشرةً إلى جزء Project Navigator (أداة التنقّل في المشروع) في "Xcode" تلقائيًا (أو النقر على رمز الملف في أعلى يمين Xcode).

    1. أضِف إطار عمل Firebase C++ firebase.framework، وهو مطلوب لاستخدام أي منتج من منتجات Firebase.

    2. أضِف إطار العمل لكل منتج تريد استخدامه في Firebase. على سبيل المثال، لاستخدام مصادقة Firebase، أضف firebase_auth.framework.

  4. في "وحدة تحكُّم Firebase"، انقر على التالي في سير عمل الإعداد.

  5. إذا أضفت "إحصاءات Google"، شغِّل تطبيقك لإرسال إثبات الملكية إلى Firebase بأنه تم دمج Firebase بنجاح. بخلاف ذلك، يمكنك تخطي خطوة التحقق هذه.

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

اكتملت عملية الإعداد تم تسجيل تطبيق C++ وإعداده لاستخدام منتجات Firebase.

المكتبات المتاحة

يمكنك الاطّلاع على مزيد من المعلومات حول مكتبات C++ Firebase في المستندات المرجعية وفي إصدار حزمة SDK المفتوحة المصدر على GitHub.

المكتبات المتاحة لأنظمة Apple الأساسية

يُرجى العلم أنّ مكتبات C++ لنظام التشغيل Android مدرَجة على إصدار Android من صفحة الإعداد هذه.

يحتوي كل منتج في Firebase على تبعيات مختلفة. تأكد من إضافة جميع التبعيات المدرجة لمنتج Firebase المطلوب إلى Podfile ومشروع C++.

قد يتوافق كل منتج من منتجات Firebase فقط مع مجموعة مختارة من أنظمة التشغيل Apple OS (iOS وtvOS وغيرها). يمكنك الاطّلاع على الأنظمة الأساسية المتوافقة مع كل مكتبة من خلال الاطّلاع على مزيد من المعلومات حول C++ وFirebase.

منتج Firebase الإطارات والمجموعات
AdMob (مطلوب) firebase.framework
firebase_admob.framework
(مطلوب) firebase_analytics.framework
pod 'FirebaseAdMob', '10.28.1'
(مطلوب) pod 'FirebaseAnalytics', '10.28.1'
إحصاءات Google (مطلوب) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.28.1'
فحص التطبيقات (مطلوب) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.28.1'
المصادقة (مطلوب) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.28.1'
Cloud Firestore (مطلوب) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.28.1'
pod 'FirebaseAuth', '10.28.1'
الوظائف السحابية (مطلوب) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.28.1'
المراسلة عبر السحابة الإلكترونية (مطلوب) firebase.framework
firebase_messaging.framework
(موصى به) firebase_analytics.framework
pod 'FirebaseMessaging', '10.28.1'
(موصى به) pod 'FirebaseAnalytics', '10.28.1'
التخزين في السحابة الإلكترونية (مطلوب) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.28.1'
الروابط الديناميكية (مطلوب) firebase.framework
firebase_dynamic_links.framework
(موصى به) firebase_analytics.framework
pod 'FirebaseDynamicLinks', '10.28.1'
(موصى به) pod 'FirebaseAnalytics', '10.28.1'
قاعدة بيانات الوقت الفعلي (مطلوب) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.28.1'
الإعداد عن بُعد (مطلوب) firebase.framework
firebase_remote_config.framework
(موصى به) firebase_analytics.framework
pod 'FirebaseRemoteConfig', '10.28.1'
(موصى به) pod 'FirebaseAnalytics', '10.28.1'

معلومات إضافية لإعداد الجوال

طريقة التدوير

على نظام التشغيل iOS، تتطلب بعض أحداث التطبيقات (مثل فتح عناوين URL وتلقي الإشعارات) من تفويض تطبيقك تنفيذ طرق محددة. على سبيل المثال، قد يتطلب تلقّي إشعار تفويض تطبيقك لتنفيذ application:didReceiveRemoteNotification:. وبما أنّ كل تطبيق من تطبيقات iOS له تفويض خاص به للتطبيق، يستخدم Firebase طريقة التبديل، التي تتيح استبدال إحدى الطرق بأخرى لإرفاق المعالِجات الخاصة به بالإضافة إلى أي معالجات ربما تكون قد نفذتها.

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

إعداد سير عمل أجهزة كمبيوتر سطح المكتب (إصدار تجريبي)

عند إنشاء لعبة، غالبًا ما يكون من الأسهل كثيرًا اختبار لعبتك على منصات الكمبيوتر المكتبي أولاً، ثم نشرها واختبارها على الأجهزة الجوّالة لاحقًا في مرحلة التطوير. ولدعم سير العمل هذا، نوفّر مجموعة فرعية من حِزم SDK لمنصة Firebase C++ التي يمكن تشغيلها على أنظمة التشغيل Windows وmacOS وLinux ومن داخل أداة تعديل C++.

  1. بالنسبة إلى سير عمل سطح المكتب، يجب إكمال ما يلي:

    1. قم بتهيئة مشروع C++ لـ CMake.
    2. إنشاء مشروع على Firebase
    3. تسجيل تطبيقك (iOS أو Android) في Firebase
    4. إضافة ملف إعداد Firebase لمنصة الأجهزة الجوّالة
  2. أنشئ إصدار سطح المكتب من ملف إعداد Firebase:

    • في حال إضافة ملف google-services.json لنظام التشغيل Android: عند تشغيل تطبيقك، يحدد Firebase موقع ملف الأجهزة الجوّالة هذا، ثم ينشئ تلقائيًا ملف إعداد Firebase على سطح المكتب (google-services-desktop.json).

    • في حال إضافة ملف GoogleService-Info.plist لنظام التشغيل iOS: قبل تشغيل تطبيقك، يجب تحويل ملف الأجهزة الجوّالة هذا إلى ملف إعداد Firebase للكمبيوتر المكتبي. لتحويل الملف، شغِّل الأمر التالي من الدليل نفسه الذي يتضمّن ملف GoogleService-Info.plist:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    يحتوي ملف إعداد سطح المكتب هذا على رقم تعريف مشروع C++ الذي أدخلته في سير عمل إعداد وحدة تحكُّم Firebase. انتقِل إلى فهم مشاريع Firebase للمزيد من المعلومات حول ملفات الإعداد.

  3. أضف حزم تطوير البرامج (SDK) لمنصّة Firebase إلى مشروع C++ الخاص بك.

    تشكّل الخطوات أدناه مثالاً على كيفية إضافة أي منتج متوافق في Firebase إلى مشروع C++ الخاص بك. في هذا المثال، نستعرض عملية إضافة مصادقة Firebase وقاعدة بيانات Firebase في الوقت الفعلي.

    1. اضبط متغيّر بيئة FIREBASE_CPP_SDK_DIR على موقع حزمة تطوير البرامج (SDK) غير المضغوطة من Firebase C++

    2. إلى ملف CMakeLists.txt الخاص بمشروعك، أضِف المحتوى التالي، بما في ذلك المكتبات لمنتجات Firebase التي تريد استخدامها. على سبيل المثال، لاستخدام مصادقة Firebase وقاعدة بيانات Firebase في الوقت الفعلي:

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
      
  4. شغِّل تطبيق C++.

المكتبات المتاحة (أجهزة الكمبيوتر المكتبي)

تتضمن حزمة تطوير برامج Firebase C++ دعم سير العمل المتوافق مع أجهزة سطح المكتب لمجموعة فرعية من الميزات، ما يتيح استخدام أجزاء معيّنة من Firebase في إصدارات أجهزة الكمبيوتر المكتبي المستقلة على أنظمة التشغيل Windows وmacOS وLinux.

منتج Firebase مراجع المكتبة (باستخدام أداة CMake)
فحص التطبيقات firebase_app_check
(مطلوب) firebase_app
المصادقة firebase_auth
(مطلوب) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
الوظائف السحابية firebase_functions
(مطلوب) firebase_app
التخزين في السحابة الإلكترونية firebase_storage
(مطلوب) firebase_app
قاعدة بيانات الوقت الفعلي firebase_database
(مطلوب) firebase_app
الإعداد عن بُعد firebase_remote_config
(مطلوب) firebase_app

ويوفر Firebase مكتبات سطح المكتب المتبقية كعمليات تنفيذ بديلة (غير فعّالة) لتيسير إنشاءها عند إنشاء أنظمة التشغيل Windows وmacOS وLinux. لذلك، لا تحتاج إلى تجميع الرمز البرمجي بشكل مشروط لاستهداف سطح المكتب.

قاعدة بيانات الوقت الفعلي لسطح المكتب

وتستخدِم حزمة تطوير البرامج (SDK) لقاعدة البيانات في الوقت الفعلي (Realtime Database) للكمبيوتر المكتبي REST للوصول إلى قاعدة البيانات الخاصة بك، لذلك عليك الإفصاح عن الفهارس التي تستخدمها مع Query::OrderByChild() على الكمبيوتر المكتبي، وإلا سيتعذّر تشغيل المستمعين.

معلومات إضافية لإعداد سطح المكتب

مكتبات Windows

بالنسبة إلى نظام التشغيل Windows، يتم توفير إصدارات المكتبة استنادًا إلى ما يلي:

  • نظام التشغيل: وضع 32 بت (x86) مقابل 64 بت (x64)
  • بيئة وقت تشغيل Windows: Multithreaded / MT مقابل Multithreaded DLL /MD
  • الهدف: الإصدار مقابل تصحيح الأخطاء

تجدر الإشارة إلى أنّه تمّ اختبار المكتبات التالية باستخدام Visual Studio 2015 و2017.

عند إنشاء تطبيقات سطح مكتب C++ على Windows، قم بربط مكتبات Windows SDK التالية بمشروعك. راجع وثائق برنامج التجميع لمزيد من المعلومات.

مكتبة Firebase C++ ملحقات مكتبة SDK لنظام التشغيل Windows
فحص التطبيقات advapi32, ws2_32, crypt32
المصادقة advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
وظائف السحابة الإلكترونية advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
قاعدة بيانات الوقت الفعلي advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
الإعداد عن بُعد advapi32, ws2_32, crypt32, rpcrt4, ole32

مكتبات macOS

بالنسبة إلى نظام التشغيل macOS (Darwin)، تتوفّر إصدارات المكتبة لنظام التشغيل 64 بت (x86_64). يتم أيضًا توفير أطر العمل لتيسير الأمر عليك.

ملاحظة: تم اختبار مكتبات macOS باستخدام Xcode 13.3.1.

عند إنشاء تطبيقات سطح مكتب C++ على macOS، قم بربط ما يلي بمشروعك:

  • مكتبة النظام pthread
  • CoreFoundation إطار عمل نظام التشغيل macOS
  • Foundation إطار عمل نظام التشغيل macOS
  • Security إطار عمل نظام التشغيل macOS
  • GSS إطار عمل نظام التشغيل macOS
  • Kerberos إطار عمل نظام التشغيل macOS
  • SystemConfiguration إطار عمل نظام التشغيل macOS

للحصول على مزيد من المعلومات، يمكنك الرجوع إلى وثائق برنامج التجميع.

مكتبات Linux

وبالنسبة إلى Linux، تتوفر إصدارات المكتبة للأنظمة الأساسية 32 بت (i386) و64 بت (x86_64).

تجدر الإشارة إلى أنّه تمّ اختبار مكتبات Linux باستخدام الإصدارات 4.8.0 من GCC وGCC 7.2.0 وClang 5.0 على نظام التشغيل Ubuntu.

عند إنشاء تطبيقات سطح مكتب C++ على Linux، اربط مكتبة نظام pthread بمشروعك. للحصول على مزيد من المعلومات، يمكنك الرجوع إلى وثائق برنامج التجميع. إذا كنت تنشئ الإصدار باستخدام GCC 5 أو إصدار أحدث، حدِّد -D_GLIBCXX_USE_CXX11_ABI=0.

الخطوات اللاحقة