عزِّز قدرات ألعاب C++ الخاصة بنا باستخدام حزم SDK الخاصة بـ Firebase C++ التي توفر لغة C++ بالإضافة إلى حِزم تطوير البرامج (SDK) لمنصّة Firebase
يمكنك الوصول إلى Firebase بالكامل باستخدام رمز C++، بدون الحاجة إلى كتابة التعليمات البرمجية الأصلية للنظام الأساسي. تعمل حزمة تطوير البرامج (SDK) لمنصة Firebase أيضًا على ترجمة العديد من اللغات المصطلحات الاصطلاحية التي يستخدمها Firebase في واجهة أكثر دراية بمطوري C++.
لمزيد من المعلومات عن تحسين أداء ألعابك باستخدام Firebase، انتقِل إلى صفحة ألعاب Firebase:
هل أضفت Firebase بالفعل إلى مشروع C++ الخاص بك؟ تأكد من استخدام أحدث إصدار من حزمة تطوير البرامج (SDK) Firebase C++.
المتطلبات الأساسية
تثبيت المحرّر أو بيئة التطوير المتكاملة المفضّلة لديك، مثل "استوديو Android" أو IntelliJ أو VS Code.
تأكد من أن مشروعك يلبي هذه المتطلبات:
استهداف المستوى 19 من واجهة برمجة التطبيقات (KitKat) أو أعلى
يستخدم Gradle ويتم ضبطه على إنشاء المحتوى
ابدأ بإعداد جهاز فعلي أو استخدام محاكي لتشغيل تطبيقك.
سجّل الدخول إلى Firebase باستخدام حسابك الحساب.
الخطوة 2: إنشاء مشروع على Firebase
قبل أن تتمكن من إضافة Firebase إلى مشروع C++ ، يجب إنشاء Firebase للاتصال بمشروع C++ الخاص بك. زيارة الموقع يمكنك فهم مشاريع Firebase للحصول على مزيد من المعلومات حول. مشاريع Firebase:
الخطوة 3: تسجيل تطبيقك في Firebase
لاستخدام Firebase في تطبيق Android، يجب تسجيل تطبيقك في مشروع على Firebase. وعادةً ما يُطلق على تسجيل تطبيقك اسم "الإضافة". تطبيقك إلى مشروعك.
انتقِل إلى وحدة تحكُّم Firebase.
في منتصف صفحة النظرة العامة على المشروع، انقر على رمز Android. (
) أو إضافة تطبيق لبدء عملية الإعدادأدخل اسم حزمة التطبيق في حقل اسم حزمة Android.
(اختياري) أدخِل معلومات أخرى عن التطبيق: اسم التطبيق وشهادة توقيع تصحيح الأخطاء SHA-1
انقر على تسجيل التطبيق.
الخطوة 4: إضافة ملف إعداد Firebase
انقر على تنزيل google-services.json للحصول على نظام التشغيل Firebase Android. config.
افتح مشروع C++ في بيئة تطوير متكاملة (IDE)، ثم أضف ملف التهيئة إلى مشروعك:
إصدارات Gradle - أضف ملف التهيئة إلى الدليل نفسه الموجود فيه ملف
build.gradle
من المستوى الأعلى.أنظمة تصميم أخرى — راجِع أنظمة التصميم المخصصة أدناه لإنشاء موارد سلاسل Android:
(إصدارات Gradle فقط) لتفعيل خدمات Firebase في مشروع C++ ، يجب إضافة خدمات google المكوّن الإضافي إلى ملف
build.gradle
ذي المستوى الأعلى.يمكنك إضافة قواعد لتضمين المكوّن الإضافي لنظام Gradle لخدمات Google. التحقق من أنك لديها مستودع Maven من Google أيضًا.
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.4.2' // Google Services plugin implementation 'com.google.android.gms:18.5.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
تطبيق المكوّن الإضافي لنظام Gradle لخدمات Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
لقد انتهيت من عملية الإعداد في وحدة تحكّم "Firebase". المتابعة إلى يمكنك إضافة حِزم تطوير البرامج (SDK) لـ Firebase C++ أدناه.
الخطوة 5: إضافة حِزم تطوير البرامج (SDK) لمنصة Firebase C++
تقدّم الخطوات الواردة في هذا القسم مثالاً على كيفية إضافة حزمة Firebase متوافقة. المنتجات إلى مشروع Firebase C++.
نزِّل حزمة تطوير البرامج (SDK) Firebase C++، ثم فُكّ ضغط حزمة SDK في مكان مناسب.
وحزمة تطوير البرامج (SDK) Firebase من نوع C++ ليست خاصة بالنظام الأساسي، ولكنّها تحتوي على. المكتبات الخاصة بأنظمة أساسية محددة.
في ملف
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 التي تريد استخدامها في تطبيقك.تم تفعيل Analytics.
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 }
لم يتم تفعيل Analytics
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 التي تريد استخدامها في تطبيقك.تم تفعيل Analytics.
# 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}")
لم يتم تفعيل Analytics
# 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 | analytics |
firebase_analytics
(مطلوب) firebase_app
|
App Check | appCheck |
firebase_app_check
(مطلوب) firebase_app
|
Authentication | auth |
firebase_auth
(مطلوب) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore
(مطلوب) firebase_auth (مطلوب) firebase_app
|
Cloud Functions | functions |
firebase_functions
(مطلوب) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging
(موصى بها) firebase_analytics (مطلوب) firebase_app
|
Cloud Storage | storage |
firebase_storage
(مطلوب) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links
(موصى بها) firebase_analytics (مطلوب) firebase_app
|
Realtime Database | database |
firebase_database
(مطلوب) firebase_app
|
Remote Config | 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 الموارد:
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 | غير مطلوب (عادةً) |
Analytics | غير مطلوبة |
Authentication | مطلوب |
Cloud Firestore | مطلوب |
Cloud Functions | مطلوب |
Cloud Messaging | مطلوب |
Cloud Storage | مطلوب |
Dynamic Links | مطلوب |
Realtime Database | مطلوب |
Remote Config | مطلوب |
AdMob وخدمات Google Play
يمكن أن تعمل معظم إصدارات حزمة تطوير البرامج (SDK) "Google Mobile Ads" لنظام التشغيل 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
.
إعداد سير عمل أجهزة كمبيوتر سطح المكتب (إصدار تجريبي)
عند إنشاء لعبة، من الأسهل كثيرًا اختبار لعبتك على أجهزة الكمبيوتر المكتبي. على الأنظمة الأساسية أولاً، ثم النشر واختبارها على الأجهزة الجوّالة في مرحلة لاحقة من عملية التطوير. إلى لسير العمل هذا، نقدم مجموعة فرعية من حِزم تطوير البرامج (SDK) لـ Firebase C++ التي يمكن تشغيلها على على أنظمة التشغيل Windows وmacOS وLinux ومن داخل محرّر C++.
بالنسبة إلى سير عمل سطح المكتب، يجب إكمال ما يلي:
- قم بتهيئة مشروع C++ لـ CMake.
- إنشاء مشروع على Firebase
- تسجيل تطبيقك (iOS أو Android) في Firebase
- إضافة ملف إعداد Firebase لمنصة الأجهزة الجوّالة
أنشئ إصدار سطح المكتب من ملف إعداد Firebase:
إذا أضفت ملف
google-services.json
لنظام التشغيل Android: عند تشغيل لتطبيقك، يحدد Firebase موقع ملف الجهاز الجوّال هذا، ثم ينشئ ملف إعداد Firebase على سطح المكتب. (google-services-desktop.json
).في حال إضافة الملف
GoogleService-Info.plist
لنظام التشغيل iOS: قبل التشغيل تطبيقك، يجب تحويل ملف الأجهزة الجوّالة هذا إلى ملف في Firebase على كمبيوتر مكتبي. config. لتحويل الملف، شغّل الأمر التالي من نفس الدليل كملفGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
يحتوي ملف تهيئة سطح المكتب هذا على رقم تعريف مشروع C++ الذي أدخلته في في ما يلي الخطوات التي يجب اتّباعها لإعداد وحدة تحكّم "Firebase": زيارة الموقع فهم مشاريع Firebase لمعرفة المزيد حول ملفات التهيئة.
أضف حزم تطوير البرامج (SDK) لمنصّة Firebase إلى مشروع C++ الخاص بك.
الخطوات أدناه هي مثال على كيفية إضافة أي منتج Firebase المتوافق مشروع C++ الخاص بك. في هذا المثال، نستعرض عملية إضافة "Firebase Authentication" وFirebase Realtime Database"
ضبط متغيّر بيئة
FIREBASE_CPP_SDK_DIR
على موقع حزمة تطوير البرامج (SDK) Firebase C++ غير المضغوطةإلى ملف
CMakeLists.txt
الخاص بمشروعك، أضِف المحتوى التالي بما في ذلك مكتبات منتجات Firebase التي تريد استخدامها. على سبيل المثال، لاستخدام Firebase Authentication وFirebase Realtime Database:# 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++.
المكتبات المتاحة (أجهزة الكمبيوتر المكتبي)
تتضمّن حزمة تطوير البرامج (SDK) Firebase لبرامج "C++" دعمًا لسير العمل على أجهزة الكمبيوتر المكتبي. لمجموعة فرعية من الميزات، ما يتيح استخدام أجزاء معينة من Firebase في يعتمد إصدار سطح المكتب المستقل على أنظمة التشغيل Windows وmacOS وLinux.
منتج Firebase | مراجع المكتبة (باستخدام أداة CMake) |
---|---|
App Check |
firebase_app_check
(مطلوب) firebase_app
|
Authentication |
firebase_auth
(مطلوب) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions
(مطلوب) firebase_app
|
Cloud Storage |
firebase_storage
(مطلوب) firebase_app
|
Realtime Database |
firebase_database
(مطلوب) firebase_app
|
Remote Config |
firebase_remote_config
(مطلوب) firebase_app
|
أمّا في Firebase، فيقدّم مكتبات سطح المكتب المتبقية كدليل بديل (غير يعمل). وعمليات التنفيذ للتيسير عند إنشاء أنظمة التشغيل Windows وmacOS وLinux. لذلك، لا تحتاج إلى تجميع الرمز البرمجي بشكل مشروط لاستهداف سطح المكتب.
جهاز كمبيوتر مكتبي واحد (Realtime Database)
تستخدم حزمة تطوير البرامج (SDK) لنظام التشغيل Realtime Database لسطح المكتب REST للوصول إلى قاعدة البيانات، لذا عليك
أعلن عن الفهارس التي
تستخدمها مع Query::OrderByChild()
على الكمبيوتر المكتبي وإلا لن ينجح المستمعون.
معلومات إضافية لإعداد سطح المكتب
مكتبات Windows
بالنسبة إلى نظام التشغيل Windows، يتم توفير إصدارات المكتبة استنادًا إلى ما يلي:
- نظام التشغيل: وضع 32 بت (x86) مقابل 64 بت (x64)
- بيئة وقت تشغيل Windows: Multithreaded / MT مقابل Multithreaded DLL /MD
- الهدف: الإصدار مقابل تصحيح الأخطاء
تجدر الإشارة إلى أنّه تمّ اختبار المكتبات التالية باستخدام Visual Studio 2015 و2017.
عند إنشاء تطبيقات سطح مكتب C++ على Windows، قم بربط حزمة SDK التالية بنظام Windows والمكتبات لمشروعك. راجع وثائق برنامج التجميع للتعرف على المزيد المعلومات.
مكتبة Firebase C++ | ملحقات مكتبة SDK لنظام التشغيل Windows |
---|---|
App Check | advapi32, ws2_32, crypt32 |
Authentication | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Cloud Storage | advapi32, ws2_32, crypt32 |
Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
مكتبات macOS
بالنسبة إلى نظام التشغيل macOS (Darwin)، تتوفّر إصدارات المكتبة للإصدار 64 بت (x86_64). بدون خادم. يتم أيضًا توفير أطر العمل لتيسير الأمر عليك.
يُرجى العلم أنّ مكتبات macOS تم اختبارها باستخدام Xcode. 13.3.1.
عند إنشاء تطبيقات سطح مكتب C++ على macOS، قم بربط ما يلي بمشروعك:
- مكتبة النظام
pthread
CoreFoundation
إطار عمل نظام التشغيل macOSFoundation
إطار عمل نظام التشغيل macOSSecurity
إطار عمل نظام التشغيل macOSGSS
إطار عمل نظام التشغيل macOSKerberos
إطار عمل نظام التشغيل macOSSystemConfiguration
إطار عمل نظام التشغيل macOS
للحصول على مزيد من المعلومات، يمكنك الرجوع إلى وثائق برنامج التجميع.
مكتبات Linux
بالنسبة إلى نظام التشغيل Linux، تتوفّر إصدارات المكتبة لأجهزة 32 بت (i386) و64 بت (x86_64). الأساسية.
تجدر الإشارة إلى أنّه تم اختبار مكتبات Linux باستخدام الإصدارات 4.8.0 من GCC وGCC 7.2.0 و Clang 5.0 على Ubuntu.
عند إنشاء تطبيقات سطح مكتب C++ على Linux، يمكنك ربط مكتبة النظام pthread
بـ
لمشروعك. للحصول على مزيد من المعلومات، يمكنك الرجوع إلى وثائق برنامج التجميع. في حال حذف
التي تقوم بإنشائها باستخدام GCC 5 أو أحدث، فحدّد -D_GLIBCXX_USE_CXX11_ABI=0
.
الخطوات التالية
استكشِف نماذج تطبيقات Firebase.
استكشف حزمة SDK مفتوحة المصدر في GitHub.
الاستعداد لإطلاق تطبيقك:
- إعداد الميزانية تنبيهات لمشروعك في وحدة تحكم Google Cloud.
- يمكنك مراقبة الاستخدام والفوترة لوحة البيانات في وحدة تحكم Firebase للحصول على صورة شاملة عبر خدمات Firebase المتعددة.
- راجِع قائمة التحقّق الخاصة بإطلاق Firebase.