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

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

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

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

هل سبق لك إضافة Firebase إلى مشروع C++‎؟ تأكَّد من استخدام أحدث إصدار من Firebase C++ SDK.


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

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

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

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

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

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

قبل أن تتمكّن من إضافة Firebase إلى مشروع C++، عليك إنشاء مشروع Firebase لربطه بمشروع C++. انتقِل إلى مقالة التعرّف على مشاريع Firebase لمعرفة المزيد عن مشاريع Firebase.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. أنشئ ملف Podfile إذا لم يكن لديك ملف حاليًا:

      cd your-app-directory
      pod init

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

      تم تفعيل Analytics

      # 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'

      لم يتم تفعيل Analytics

      # 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. ثبِّت وحدات pods، ثم افتح الملف .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 Authentication، أضِف firebase_auth.framework.

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

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

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

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

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

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

المكتبات المتاحة لمنصات Apple

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

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

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

منتج Firebase أُطر العمل وPods
Analytics (مطلوب) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.19.0'
App Check (مطلوب) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.19.0'
Authentication (مطلوب) firebase.framework
firebase_auth.framework

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

pod 'FirebaseFirestore', '12.19.0'
pod 'FirebaseAuth', '12.19.0'
Cloud Functions (مطلوب) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.19.0'
Cloud Messaging (مطلوب) firebase.framework
firebase_messaging.framework
(يُنصح به) firebase_analytics.framework

pod 'FirebaseMessaging', '12.19.0'
(يُنصح به) pod 'FirebaseAnalytics', '12.19.0'
Cloud Storage (مطلوب) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.19.0'
Realtime Database (مطلوب) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.19.0'
Remote Config (مطلوب) firebase.framework
firebase_remote_config.framework
(يُنصح به) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.19.0'
(يُنصح به) pod 'FirebaseAnalytics', '12.19.0'
المكتبات المتوقّفة نهائيًا أو غير المتوافقة
Dynamic Links (مطلوب) firebase.framework
firebase_dynamic_links.framework
(يُنصح به) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.19.0'
(يُنصح به) pod 'FirebaseAnalytics', '12.19.0'

معلومات إضافية حول عملية الإعداد على الأجهزة الجوّالة

Method swizzling

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

تحتاج المكتبتان Dynamic Links وCloud Messaging إلى ربط معالِجات بمفوّض التطبيق باستخدام طريقة تغيير وظيفة الإجراء. إذا كنت تستخدم أيًا من منتجات 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: قبل تشغيل تطبيقك، عليك تحويل ملف mobile هذا إلى ملف إعداد سطح المكتب في 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 Authentication وFirebase Realtime Database.

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

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

      # 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++

المكتبات المتاحة (على الكمبيوتر)

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

منتج Firebase مراجع المكتبة (باستخدام CMake)
App Check firebase_app_check
(مطلوب) firebase_app
Authentication firebase_auth
(مطلوب) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(مطلوب) firebase_app
Cloud Storage firebase_storage
(مطلوب) firebase_app
Realtime Database firebase_database
(مطلوب) firebase_app
Remote Config firebase_remote_config
(مطلوب) firebase_app

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

Realtime Database كمبيوتر

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

معلومات إضافية حول عملية الإعداد على الكمبيوتر

مكتبات Windows

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

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

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

عند إنشاء تطبيقات C++‎ على أجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows، اربط مكتبات Windows SDK التالية بمشروعك. يُرجى الرجوع إلى مستندات المترجم للحصول على مزيد من المعلومات.

مكتبة Firebase C++‎ الاعتماديات الخاصة بمكتبات حزمة تطوير البرامج (SDK) لنظام التشغيل Windows
App Check advapi32, ws2_32, crypt32
Authentication advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

مكتبات macOS

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

يُرجى العِلم أنّه تم اختبار مكتبات macOS باستخدام Xcode 26.2.

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

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

لمزيد من المعلومات، يُرجى الرجوع إلى مستندات برنامج التجميع.

مكتبات Linux

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

يُرجى العِلم أنّه تم اختبار مكتبات Linux باستخدام GCC 4.8.0 وGCC 7.2.0 وClang 5.0 على Ubuntu.

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

الخطوات التالية