Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

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

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

    • Xcode 12 أو أحدث
    • CocoaPods 1.10.0 أو أحدث
  • تأكد من أن مشروعك يستهدف iOS 10 أو إصدار أحدث.

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

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

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

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

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

بعد أن يكون لديك مشروع Firebase ، يمكنك إضافة تطبيق iOS الخاص بك إليه.

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

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

  2. في وسط الصفحة نظرة عامة المشروع، انقر فوق رمز دائرة الرقابة الداخلية ( ) لإطلاق سير العمل الإعداد.

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

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

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

  5. انقر فوق تسجيل التطبيق.

الخطوة 4: إضافة ملف التكوين Firebase

  1. انقر فوق تحميل GoogleService-Info.plist للحصول على ملف التكوين Firebase الذي يعمل بنظام iOS.

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

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

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

خطوة 5: إضافة عدد تطوير البرامج Firebase C ++

الخطوات في هذا القسم هي مثال على كيفية إضافة منتجات 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 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      لم يتم تمكين التحليلات

      # 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 'Firebase/Auth'
      pod 'Firebase/Database'
    3. تثبيت القرون، ثم فتح .xcworkspace الملف في كسكودي.

      pod install
      open your-app.xcworkspace

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

    أسهل طريقة لإضافة هذه الأطر هي عادة لجرها من Finder نافذة مباشرة في جزء مشروع المستكشف كسكودي ل(الجزء اليميني المتطرف، افتراضيا، أو انقر فوق رمز الملف في الجزء العلوي الأيسر من كسكودي).

    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 على جيثب .

المكتبات المتاحة لنظام iOS

علما بأن المكتبات C ++ لالروبوت ترد على الروبوت نسخة من هذه الصفحة الإعداد .

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

منتج Firebase الأطر والقرون
AdMob (مطلوب) firebase.framework
firebase_admob.framework
(مطلوب) firebase_analytics.framework

pod 'Firebase/AdMob', '8.7.0'
(مطلوب) pod 'Firebase/Analytics', '8.7.0'
تحليلات (مطلوب) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.7.0'
المصادقة (مطلوب) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.7.0'
سحابة Firestore (بيتا) (مطلوب) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.7.0'
pod 'Firebase/Auth', '8.7.0'
وظائف السحابة (مطلوب) firebase.framework
firebase_functions.framework

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

pod 'Firebase/Messaging', '8.7.0'
(موصى به) pod 'Firebase/Analytics', '8.7.0'
سحابة التخزين (مطلوب) firebase.framework
firebase_storage.framework

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

pod 'Firebase/DynamicLinks', '8.7.0'
(موصى به) pod 'Firebase/Analytics', '8.7.0'
قاعدة بيانات الوقت الفعلي (مطلوب) firebase.framework
firebase_database.framework

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

pod 'Firebase/RemoteConfig', '8.7.0'
(موصى به) pod 'Firebase/Analytics', '8.7.0'

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

طريقة أزيز

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

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

إنشاء سير العمل سطح المكتب (بيتا)

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

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

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

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

    • إذا قمت بإضافة دائرة الرقابة الداخلية 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 متغير البيئة إلى الموقع من محلول ++ SDK Firebase C.

    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 لاستخدامها في سطح المكتب مستقل يبني على ويندوز، ماك، ولينوكس.

منتج Firebase مراجع المكتبة (باستخدام CMake)
المصادقة 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

و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
سحابة 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 12.

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

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

استشر وثائق المترجم لمزيد من المعلومات.

مكتبات Linux

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

لاحظ أنه تم اختبار مكتبات Linux باستخدام GCC 4.8.0 و GCC 7.2.0 و Clang 5.0 على Ubuntu.

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

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