قم بتشغيل ألعاب C ++ الخاصة بك من خلال مجموعات Firebase C ++ SDK الخاصة بنا والتي توفر واجهة C ++ أعلى مجموعات Firebase SDK.
قم بالوصول إلى Firebase بالكامل من كود C ++ الخاص بك ، دون الحاجة إلى كتابة أي كود أصلي للنظام الأساسي. تقوم حزمة Firebase SDK أيضًا بترجمة العديد من المصطلحات الخاصة باللغة المستخدمة بواسطة Firebase إلى واجهة مألوفة أكثر لمطوري C ++.
تعرف على مزيد من المعلومات حول تشغيل ألعابك باستخدام Firebase في صفحة ألعاب Firebase .
هل سبق لك إضافة Firebase إلى مشروع C ++ الخاص بك؟ تأكد من أنك تستخدم أحدث إصدار من Firebase C ++ SDK .
المتطلبات الأساسية
قم بتثبيت المحرر المفضل لديك أو IDE ، مثل Android Studio أو IntelliJ أو VS Code.
احصل على Android SDK .
تأكد من أن مشروعك يلبي هذه المتطلبات:
تستهدف مستوى API 19 (KitKat) أو أعلى
يستخدم Gradle ويتم تكوينه مع CMake
قم بإعداد جهاز مادي أو استخدام محاكي لتشغيل تطبيقك.
سجّل الدخول إلى Firebase باستخدام حساب Google الخاص بك.
الخطوة 2 : أنشئ مشروع Firebase
قبل أن تتمكن من إضافة Firebase إلى مشروع C ++ ، تحتاج إلى إنشاء مشروع Firebase للاتصال بمشروع C ++ الخاص بك. تفضل بزيارة فهم مشاريع Firebase لمعرفة المزيد حول مشاريع Firebase.
الخطوة 3 : تسجيل تطبيقك في Firebase
لاستخدام Firebase في تطبيق Android ، يلزمك تسجيل تطبيقك في مشروع Firebase. غالبًا ما يسمى تسجيل تطبيقك "إضافة" تطبيقك إلى مشروعك.
انتقل إلى وحدة تحكم Firebase .
في وسط صفحة نظرة عامة على المشروع ، انقر فوق رمز Android (
) أو إضافة تطبيق لبدء سير عمل الإعداد.أدخل اسم حزمة تطبيقك في حقل اسم حزمة Android .
يعرّف اسم الحزمة بشكل فريد تطبيقك على الجهاز وفي متجر Google Play.
غالبًا ما يشار إلى اسم الحزمة باسم معرف التطبيق .
ابحث عن اسم حزمة التطبيق الخاص بك في ملف Gradle (على مستوى التطبيق) للوحدة النمطية ، وعادةً ما يكون
app/build.gradle
(مثال على اسم الحزمة:com.yourcompany.yourproject
).اعلم أن قيمة اسم الحزمة حساسة لحالة الأحرف ، ولا يمكن تغييرها لتطبيق Firebase Android هذا بعد تسجيله في مشروع Firebase.
(اختياري) أدخل معلومات التطبيق الأخرى: لقب التطبيق وشهادة توقيع تصحيح الأخطاء SHA-1 .
لقب التطبيق : معرّف داخلي ملائم يكون مرئيًا لك فقط في وحدة تحكم Firebase
شهادة توقيع تصحيح الأخطاء SHA-1: مطلوب تجزئة SHA-1 بواسطة مصادقة Firebase (عند استخدام تسجيل الدخول إلى Google أو تسجيل الدخول برقم الهاتف ) و Firebase Dynamic Links .
انقر فوق تسجيل التطبيق .
الخطوة 4 : أضف ملف تكوين Firebase
انقر فوق تنزيل google-services.json للحصول على ملف تهيئة Firebase Android.
يحتوي ملف تهيئة Firebase على معرّفات فريدة ولكنها غير سرية لمشروعك. لمعرفة المزيد حول ملف التكوين هذا ، تفضل بزيارة فهم مشاريع Firebase .
يمكنك تنزيل ملف تهيئة Firebase مرة أخرى في أي وقت.
تأكد من عدم إلحاق اسم ملف التكوين بأحرف إضافية ، مثل
(2)
.
افتح مشروع C ++ الخاص بك في IDE ، ثم أضف ملف التكوين الخاص بك إلى مشروعك:
إنشاءات Gradle - أضف ملف التكوين الخاص بك إلى نفس الدليل مثل ملف
build.gradle
ذي المستوى الأعلى.أنظمة الإنشاء الأخرى - راجع أنظمة الإنشاء المخصصة أدناه لإنشاء موارد سلسلة Android .
(يُنشئ Gradle فقط) لتمكين خدمات Firebase في مشروع C ++ ، أضف المكوّن الإضافي لخدمات google إلى ملف
build.gradle
ذي المستوى الأعلى.أضف قواعد لتضمين المكون الإضافي Google Services 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.15' // Google Services plugin implementation 'com.google.android.gms:18.2.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
تطبيق المكون الإضافي Google Services Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
لقد انتهيت من إعداد المهام في وحدة تحكم Firebase. تابع إضافة Firebase C ++ SDK أدناه.
الخطوة 5 : إضافة Firebase C ++ SDKs
الخطوات الواردة في هذا القسم هي مثال على كيفية إضافة منتجات Firebase المدعومة إلى مشروع Firebase C ++.
قم بتنزيل Firebase C ++ SDK ، ثم قم بفك ضغط SDK في مكان مناسب.
إن Firebase C ++ SDK ليس خاصًا بالنظام الأساسي ، ولكنه يحتوي على مكتبات خاصة بالنظام الأساسي.
في ملف
gradle.properties
الخاص بمشروعك ، حدد موقع SDK الذي تم فك ضغطه:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
إلى ملف
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"
إلى ملف Gradle الخاص بالوحدة (على مستوى التطبيق) (عادةً
app/build.gradle
) ، أضف المحتوى التالي.
قم بتضمين تبعيات المكتبة لمنتجات Firebase التي تريد استخدامها في تطبيقك.تم تمكين التحليلات
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics auth database }
لم يتم تمكين التحليلات
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { auth database }
إلى ملف
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}")
قم بمزامنة تطبيقك للتأكد من أن جميع التبعيات تحتوي على الإصدارات اللازمة.
إذا أضفت Analytics ، فقم بتشغيل تطبيقك لإرسال إثبات إلى Firebase بأنك نجحت في دمج Firebase. خلاف ذلك ، يمكنك تخطي خطوة التحقق.
ستعرض سجلات جهازك تحقق Firebase من اكتمال التهيئة. إذا قمت بتشغيل تطبيقك على محاكي لديه وصول إلى الشبكة ، فستعلمك وحدة التحكم Firebase أن اتصال التطبيق قد اكتمل.
أنت جاهز تمامًا! تم تسجيل تطبيق C ++ وتهيئته لاستخدام خدمات Firebase.
المكتبات المتاحة
تعرف على المزيد حول مكتبات C ++ Firebase في الوثائق المرجعية وفي إصدار SDK مفتوح المصدر على GitHub .
المكتبات المتاحة لنظام Android (باستخدام CMake)
لاحظ أن مكتبات C ++ لأنظمة Apple الأساسية مدرجة في إصدار أنظمة تشغيل Apple (iOS +) لصفحة الإعداد هذه .
منتج Firebase | مراجع المكتبة ( firebaseCpp.dependencies لملف build.gradle ) | مراجع المكتبة ( firebase_libs لملف CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (مطلوب) firebase_analytics (مطلوب) firebase_app |
تحليلات | analytics | firebase_analytics (مطلوب) firebase_app |
التحقق من التطبيق | appCheck | firebase_app_check (مطلوب) firebase_app |
المصادقة | auth | firebase_auth (مطلوب) firebase_app |
سحابة Firestore | firestore | firebase_firestore (مطلوب) firebase_auth (مطلوب) firebase_app |
وظائف السحابة | functions | firebase_functions (مطلوب) firebase_app |
المراسلة السحابية | messaging | firebase_messaging (موصى به) firebase_analytics (مطلوب) firebase_app |
سحابة التخزين | storage | firebase_storage (مطلوب) firebase_app |
روابط ديناميكية | dynamicLinks | firebase_dynamic_links (موصى به) firebase_analytics (مطلوب) firebase_app |
قاعدة بيانات الوقت الفعلي | database | firebase_database (مطلوب) firebase_app |
التكوين عن بعد | remoteConfig | 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
الخاص بك كما يلي:
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 الخاص بالعميل. إذا قامت مكتبة Firebase 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
المذكورة أعلاه ، فإن خدمات Google Play مطلوبة .
ستؤدي تهيئة AdMob إلى إرجاع kInitResultFailedMissingDependency
فقط عندما يكون كلا الأمرين صحيحًا:
- خدمات Google Play غير متوفرة على جهاز العميل.
- أنت تستخدم
com.google.android.gms:play-services-ads-lite
.
إعداد سير عمل سطح المكتب ( تجريبي )
عند إنشاء لعبة ، غالبًا ما يكون من الأسهل كثيرًا اختبار لعبتك على منصات سطح المكتب أولاً ، ثم نشرها واختبارها على الأجهزة المحمولة لاحقًا في مرحلة التطوير. لدعم سير العمل هذا ، نقدم مجموعة فرعية من Firebase C ++ SDKs والتي يمكن تشغيلها على أنظمة تشغيل Windows و macOS و Linux ومن داخل محرر C ++.
بالنسبة لسير عمل سطح المكتب ، تحتاج إلى إكمال ما يلي:
- قم بتكوين مشروع C ++ الخاص بك لـ CMake.
- أنشئ مشروع Firebase
- سجّل تطبيقك (iOS أو Android) في Firebase
- أضف ملف تكوين Firebase للنظام الأساسي للجوّال
أنشئ إصدارًا لسطح المكتب من ملف تكوين 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 لمعرفة المزيد حول ملفات التكوين.
أضف مجموعات Firebase SDK إلى مشروع C ++ الخاص بك.
تعتبر الخطوات أدناه مثالاً على كيفية إضافة أي منتج Firebase مدعوم إلى مشروع C ++ الخاص بك. في هذا المثال ، ننتقل إلى إضافة مصادقة Firebase وقاعدة بيانات Firebase Realtime.
اضبط متغير البيئة
FIREBASE_CPP_SDK_DIR
على موقع Firebase C ++ SDK الذي تم فك ضغطه.إلى ملف
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}")
قم بتشغيل تطبيق 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
.
الخطوات التالية
استكشاف نماذج تطبيقات Firebase .
استكشف SDK مفتوح المصدر في GitHub .
استعد لإطلاق تطبيقك:
- قم بإعداد تنبيهات الميزانية لمشروعك في Google Cloud Console.
- راقب لوحة معلومات الاستخدام والفوترة في وحدة تحكم Firebase للحصول على صورة شاملة لاستخدام مشروعك عبر خدمات Firebase المتعددة.
- راجع قائمة التحقق من إطلاق Firebase .