Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

قم بتشغيل ألعاب C ++ الخاصة بك من خلال مجموعات Firebase C ++ SDK الخاصة بنا والتي توفر واجهة C ++ أعلى مجموعات Firebase SDK.

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

تعرف على مزيد من المعلومات حول تشغيل ألعابك باستخدام Firebase في صفحة ألعاب Firebase .

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

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

  • قم بتثبيت ما يلي:

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

    • iOS 11
    • 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. انقر فوق تنزيل GoogleService-Info.plist للحصول على ملف تهيئة أنظمة تشغيل Firebase Apple.

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

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

لقد انتهيت من إعداد المهام في وحدة تحكم Firebase. تابع إضافة Firebase C ++ SDK أدناه.

الخطوة 5 : إضافة Firebase C ++ SDKs

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

  1. قم بتنزيل Firebase C ++ SDK ، ثم قم بفك ضغط SDK في مكان مناسب.

    إن Firebase C ++ SDK ليس خاصًا بالنظام الأساسي ، ولكنه يحتوي على مكتبات خاصة بالنظام الأساسي.

  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. إذا أضفت 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 الأطر والقرون
AdMob (مطلوب) firebase.framework
firebase_admob.framework
(مطلوب) firebase_analytics.framework

pod 'FirebaseAdMob', '10.9.0'
(مطلوب) pod 'FirebaseAnalytics', '10.9.0'
تحليلات (مطلوب) firebase.framework
firebase_analytics.framework

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

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

pod 'FirebaseAuth', '10.9.0'
سحابة Firestore (مطلوب) firebase.framework
firebase_firestore.framework
firebase_auth.framework

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

pod 'FirebaseFunctions', '10.9.0'
المراسلة السحابية (مطلوب) firebase.framework
firebase_messaging.framework
(موصى به) firebase_analytics.framework

pod 'FirebaseMessaging', '10.9.0'
(موصى به) pod 'FirebaseAnalytics', '10.9.0'
سحابة التخزين (مطلوب) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.9.0'
روابط ديناميكية (مطلوب) firebase.framework
firebase_dynamic_links.framework
(موصى به) firebase_analytics.framework

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

pod 'FirebaseDatabase', '10.9.0'
التكوين عن بعد (مطلوب) firebase.framework
firebase_remote_config.framework
(موصى به) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.9.0'
(موصى به) pod 'FirebaseAnalytics', '10.9.0'

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

طريقة أزيز

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

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

إعداد سير عمل سطح المكتب ( تجريبي )

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

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

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

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

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

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

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

  3. أضف مجموعات Firebase SDK إلى مشروع C ++ الخاص بك.

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

    1. اضبط متغير البيئة FIREBASE_CPP_SDK_DIR على موقع Firebase C ++ SDK الذي تم فك ضغطه.

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

      # 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 ++ SDK دعم سير عمل سطح المكتب لمجموعة فرعية من الميزات ، مما يتيح استخدام أجزاء معينة من Firebase في تصميمات سطح المكتب المستقلة على أنظمة التشغيل Windows و macOS و Linux.

منتج Firebase مراجع المكتبة (باستخدام CMake)
التحقق من التطبيق firebase_app_check
(مطلوب) firebase_app
المصادقة firebase_auth
(مطلوب) firebase_app
سحابة 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. لذلك ، لا تحتاج إلى ترجمة التعليمات البرمجية بشكل مشروط لاستهداف سطح المكتب.

سطح مكتب Realtime Database

تستخدم Realtime Database SDK لسطح المكتب 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 ++ تبعيات مكتبة Windows SDK
التحقق من التطبيق advapi32, ws2_32, crypt32
المصادقة advapi32, ws2_32, crypt32
سحابة Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
وظائف السحابة advapi32, ws2_32, crypt32, rpcrt4, ole32
سحابة التخزين advapi32, ws2_32, crypt32
قاعدة بيانات الوقت الفعلي advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
التكوين عن بعد advapi32, ws2_32, crypt32, rpcrt4, ole32

مكتبات macOS

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

لاحظ أنه تم اختبار مكتبات macOS باستخدام Xcode 13.3.1.

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

  • مكتبة نظام pthread
  • إطار عمل نظام CoreFoundation macOS
  • إطار عمل نظام macOS Foundation
  • إطار عمل نظام 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 بمشروعك. استشر وثائق المترجم لمزيد من المعلومات. إذا كنت تقوم بالبناء باستخدام GCC 5 أو إصدار أحدث ، فحدد -D_GLIBCXX_USE_CXX11_ABI=0 .

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