Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

أضف Firebase إلى مشروعك في C ++

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

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

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

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

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

  • قم بتثبيت المحرر المفضل لديك أو IDE ، مثل Android Studio أو IntelliJ أو VS Code.

  • احصل على Android SDK .

  • تأكد من أن مشروعك يلبي هذه المتطلبات:

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

    • محاكاة يجب استخدام صورة المحاكي مع جوجل اللعب.

    • بالنسبة لبعض مكتبات C ++ ، فإن خدمات Google Play مطلوبة على جهاز العميل ؛ مراجعة القائمة في هذه الصفحة.

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

الخطوة 2 : أنشئ مشروع Firebase

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

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

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

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

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

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

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

  3. أدخل اسم حزمة تطبيقك في حقل اسم حزمة Android .

  4. (اختياري) أدخل معلومات التطبيق الأخرى: لقب التطبيق وشهادة توقيع تصحيح الأخطاء SHA-1 .

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

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

  1. انقر فوق تنزيل google-services.json للحصول على ملف تهيئة Firebase Android.

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

  3. (يُنشئ Gradle فقط) لتمكين خدمات Firebase في مشروع C ++ ، أضف المكوِّن الإضافي لخدمات google إلى ملف build.gradle ذي المستوى build.gradle .

    1. أضف قواعد لتضمين المكون الإضافي لخدمات Google Gradle. تحقق من أن لديك مستودع Google Maven أيضًا.

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
            implementation 'com.google.android.gms:17.4.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. تطبيق المكون الإضافي Google Services Gradle:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. لقد انتهيت من إعداد المهام في وحدة تحكم Firebase. تابع إضافة Firebase C ++ SDK أدناه.

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

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

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

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

  2. حدد موقع SDK الذي تم فك gradle.properties ملف gradle.properties الخاص gradle.properties :

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. أضف ما يلي إلى ملف settings.gradle الخاص settings.gradle :

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  4. أضف ما يلي إلى ملف Gradle (على مستوى التطبيق) للوحدة النمطية (عادةً app/build.gradle ):

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
    }
    
  5. إلى ملف CMakeLists.txt الخاص CMakeLists.txt ، أضف المحتوى التالي ، بما في ذلك مكتبات منتجات 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app)
    target_link_libraries(${target_name} "${firebase_libs}")
    

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

    # 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}")
    
  6. قم بمزامنة تطبيقك للتأكد من أن جميع التبعيات لها الإصدارات الضرورية.

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

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

أنت جاهز تمامًا! تم تسجيل تطبيق C ++ وتهيئته لاستخدام خدمات Firebase.

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

تعرف على المزيد حول مكتبات C ++ Firebase في الوثائق المرجعية وفي إصدار SDK مفتوح المصدر على GitHub .

المكتبات المتاحة لنظام Android (باستخدام CMake)

لاحظ أن مكتبات C ++ لنظام iOS مدرجة في إصدار iOS لصفحة الإعداد هذه .

منتج Firebase مراجع المكتبة (باستخدام CMake)
AdMob firebase_admob
(مطلوب) firebase_analytics
(مطلوب) firebase_app
تحليلات firebase_analytics
(مطلوب) firebase_app
المصادقة firebase_auth
(مطلوب) firebase_app
Cloud Firestore (ألفا) firebase_firestore
(مطلوب) firebase_app
(مطلوب) firebase_auth
وظائف السحابة firebase_functions
(مطلوب) firebase_app
المراسلة السحابية firebase_messaging
(موصى به) firebase_analytics
(مطلوب) firebase_app
سحابة التخزين firebase_storage
(مطلوب) firebase_app
روابط ديناميكية firebase_dynamic_links
(موصى به) firebase_analytics
(مطلوب) firebase_app
قاعدة بيانات الوقت الحقيقي firebase_database
(مطلوب) firebase_app
التكوين عن بعد firebase_remote_config
(موصى به) firebase_analytics
(مطلوب) firebase_app

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

احصل على تقارير أعطال NDK

يدعم Firebase Crashlytics الإبلاغ عن الأعطال للتطبيقات التي تستخدم مكتبات Android الأصلية. لمعرفة المزيد ، راجع الحصول على تقارير أعطال Android NDK .

أنظمة بناء مخصصة

يوفر Firebase السيناريو generate_xml_from_google_services_json.py لتحويل google-services.json ل .xml الموارد التي يمكن أن تدرج في المشروع. يطبق هذا البرنامج النصي نفس التحويل الذي يقوم به المكون الإضافي لخدمات Google Play Gradle عند إنشاء تطبيقات Android.

إذا لم تقم بالبناء باستخدام Gradle (على سبيل المثال ، يمكنك استخدام ndk-build و makefiles و Visual Studio وما إلى ذلك) ، يمكنك استخدام هذا البرنامج النصي لأتمتة إنشاء Android String Resources .

ProGuard

تستخدم العديد من أنظمة إنشاء Android ProGuard للبنيات في وضع الإصدار لتقليص أحجام التطبيقات وحماية كود مصدر Java.

إذا كنت تستخدم ProGuard ، فستحتاج إلى إضافة الملفات في libs/android/*.pro المطابقة لمكتبات Firebase C ++ التي تستخدمها في تكوين ProGuard.

على سبيل المثال ، مع Gradle ، إذا كنت تستخدم Google Analytics ، build.gradle ملف build.gradle الخاص بك كما يلي:

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

متطلبات خدمات Google Play

تتطلب معظم مكتبات Firebase C ++ أن تكون خدمات Google Play على جهاز Android الخاص بالعميل. إذا قامت مكتبة kInitResultFailedMissingDependency C ++ بإرجاع kInitResultFailedMissingDependency عند التهيئة ، فهذا يعني أن خدمات Google Play غير متوفرة على جهاز العميل (مما يعني أنه بحاجة إلى التحديث وإعادة التنشيط وإصلاح الأذونات وما إلى ذلك). لا يمكن استخدام مكتبة Firebase حتى يتم تصحيح الموقف على جهاز العميل.

يمكنك معرفة سبب عدم توفر خدمات Google Play على جهاز العميل (ومحاولة إصلاحها) باستخدام الوظائف الموجودة في google_play_services/availability.h .

يسرد الجدول التالي ما إذا كانت خدمات Google Play مطلوبة على جهاز عميل لكل منتج مدعوم من Firebase.

مكتبة Firebase C ++ خدمات Google Play المطلوبة على جهاز العميل؟
AdMob غير مطلوب (عادة)
تحليلات غير مطلوب
المصادقة مطلوب
سحابة Firestore مطلوب
وظائف السحابة مطلوب
المراسلة السحابية مطلوب
سحابة التخزين مطلوب
روابط ديناميكية مطلوب
قاعدة بيانات الوقت الحقيقي مطلوب
التكوين عن بعد مطلوب

خدمات AdMob و Google Play

يمكن أن تعمل معظم إصدارات SDK لإعلانات Google للجوال لنظام Android بشكل صحيح بدون خدمات Google Play على جهاز العميل. ومع ذلك ، إذا كنت تستخدم com.google.android.gms:play-services-ads-lite التبعية ، بدلاً من com.google.firebase:firebase-ads القياسي com.google.firebase:firebase-ads تبعية com.google.firebase:firebase-ads المذكورة أعلاه ، فإن خدمات Google Play مطلوبة .

لن تؤدي تهيئة AdMob إلا إلى إرجاع kInitResultFailedMissingDependency عندما يكون كلا الأمرين صحيحًا:

  • خدمات Google Play غير متوفرة على جهاز العميل.
  • أنت تستخدم com.google.android.gms:play-services-ads-lite .

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

عند إنشاء لعبة ، غالبًا ما يكون من الأسهل كثيرًا اختبار لعبتك على منصات سطح المكتب أولاً ، ثم نشرها واختبارها على الأجهزة المحمولة لاحقًا في مرحلة التطوير. لدعم سير العمل هذا ، نقدم مجموعة فرعية من 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 الخاص 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_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. لذلك ، لا تحتاج إلى ترجمة التعليمات البرمجية بشكل مشروط لاستهداف سطح المكتب.

سطح مكتب 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
سحابة 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 10.3.0.

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

  • مكتبة نظام pthread
  • إطار عمل نظام CoreFoundation
  • 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 .

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