قم بتعزيز ألعاب 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 الديناميكية .
انقر فوق تسجيل التطبيق .
الخطوة 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++ SDK
الخطوات الواردة في هذا القسم هي مثال لكيفية إضافة منتجات 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+) من صفحة الإعداد هذه .
منتج فايربيس | مراجع المكتبة ( firebaseCpp.dependencies لملف build.gradle ) | مراجع المكتبة ( firebase_libs لملف CMakeLists.txt ) |
---|---|---|
ادموب | admob | firebase_admob (مطلوب) firebase_analytics (مطلوب) firebase_app |
التحليلات | analytics | firebase_analytics (مطلوب) firebase_app |
فحص التطبيق | appCheck | firebase_app_check (مطلوب) firebase_app |
المصادقة | auth | firebase_auth (مطلوب) firebase_app |
سحابة فايرستور | 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
التي يمكنك تضمينها في مشروعك. يطبق هذا البرنامج النصي نفس التحويل الذي ينفذه المكون الإضافي Gradle لخدمات Google Play عند إنشاء تطبيقات Android.
إذا لم تقم بالإنشاء باستخدام Gradle (على سبيل المثال، يمكنك استخدام ndk-build وmakefiles وVisual Studio وما إلى ذلك)، فيمكنك استخدام هذا البرنامج النصي لأتمتة إنشاء Android String Resources .
بروجارد
تستخدم العديد من أنظمة إنشاء 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 } } }
متطلبات خدمات جوجل بلاي
تتطلب معظم مكتبات 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 وGoogle Play
يمكن أن تعمل معظم إصدارات Google Mobile Ads SDK لنظام 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++ SDK التي يمكن تشغيلها على أنظمة التشغيل 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.
منتج فايربيس | مراجع المكتبة (باستخدام CMake) |
---|---|
فحص التطبيق | firebase_app_check (مطلوب) firebase_app |
المصادقة | firebase_auth (مطلوب) firebase_app |
سحابة فايرستور | 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، يتم توفير إصدارات المكتبة بناءً على ما يلي:
- منصة البناء: وضع 32 بت (x86) مقابل وضع 64 بت (x64).
- بيئة تشغيل Windows: Multithreaded / MT vs Multithreaded DLL /MD
- الهدف: الإصدار مقابل التصحيح
لاحظ أنه تم اختبار المكتبات التالية باستخدام Visual Studio 2015 و2017.
عند إنشاء تطبيقات سطح المكتب C++ على نظام التشغيل Windows، قم بربط مكتبات Windows SDK التالية بمشروعك. راجع وثائق المترجم الخاص بك لمزيد من المعلومات.
مكتبة Firebase C++ | تبعيات مكتبة Windows SDK |
---|---|
فحص التطبيق | advapi32, ws2_32, crypt32 |
المصادقة | advapi32, ws2_32, crypt32 |
سحابة فايرستور | 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 (Darwin)، يتم توفير إصدارات المكتبة للنظام الأساسي 64 بت (x86_64). يتم توفير الأطر أيضا لراحتك.
لاحظ أنه تم اختبار مكتبات macOS باستخدام Xcode 13.3.1.
عند إنشاء تطبيقات سطح المكتب C++ على نظام التشغيل macOS، قم بربط ما يلي بمشروعك:
- مكتبة نظام
pthread
- إطار عمل نظام
CoreFoundation
macOS - إطار عمل نظام macOS
Foundation
- إطار عمل نظام macOS
Security
- إطار عمل نظام
GSS
macOS - إطار عمل نظام
Kerberos
macOS - إطار عمل نظام macOS
SystemConfiguration
راجع وثائق المترجم الخاص بك لمزيد من المعلومات.
مكتبات لينكس
بالنسبة لنظام التشغيل Linux، يتم توفير إصدارات المكتبة لمنصات 32 بت (i386) و64 بت (x86_64).
لاحظ أنه تم اختبار مكتبات Linux باستخدام الإصدار 4.8.0 من مجلس التعاون الخليجي، أو الإصدار 7.2.0 من مجلس التعاون الخليجي، أو الإصدار 5.0 من كلانج على نظام أوبونتو.
عند إنشاء تطبيقات سطح المكتب C++ على Linux، قم بربط مكتبة نظام pthread
بمشروعك. راجع وثائق المترجم الخاص بك لمزيد من المعلومات. إذا كنت تقوم بالإنشاء باستخدام الإصدار GB5 أو إصدار أحدث، فحدد -D_GLIBCXX_USE_CXX11_ABI=0
.
الخطوات التالية
استكشف نماذج من تطبيقات Firebase .
استكشف SDK مفتوح المصدر في GitHub .
الاستعداد لإطلاق تطبيقك:
- قم بإعداد تنبيهات الميزانية لمشروعك في Google Cloud Console.
- راقب لوحة تحكم الاستخدام والفوترة في وحدة تحكم Firebase للحصول على صورة شاملة لاستخدام مشروعك عبر خدمات Firebase المتعددة.
- قم بمراجعة القائمة المرجعية لإطلاق Firebase .