يمكنك تحسين أداء ألعاب C++ باستخدام حِزم تطوير البرامج (SDK) لـ Firebase C++ التي توفّر واجهة C++ على حِزم تطوير البرامج (SDK) لـ Firebase.
يمكنك الوصول إلى Firebase بالكامل من رمز C++ البرمجي، بدون الحاجة إلى كتابة أي رمز برمجي تابع للنظام الأساسي. تُترجم حزمة تطوير البرامج (SDK) لمنصّة Firebase أيضًا العديد من عبارات برمجة الخاصة بلغة معيّنة والتي تستخدمها Firebase إلى واجهة أكثر شيوعًا لمطوّري C++.
يمكنك الاطّلاع على مزيد من المعلومات عن تحسين أداء ألعابك باستخدام Firebase على صفحة ألعاب Firebase.
هل سبق لك إضافة Firebase إلى مشروع C++؟ تأكَّد من استخدام أحدث إصدار من حزمة Firebase C++ SDK.
المتطلبات الأساسية
ثبِّت المحرِّر أو بيئة التطوير المتكاملة المفضّلة لديك، مثل Android Studio أو IntelliJ أو VS Code.
تأكَّد من أنّ مشروعك يستوفي المتطلبات التالية:
استهداف المستوى 21 من واجهة برمجة التطبيقات (Lollipop) أو إصدار أحدث
يستخدم Gradle ويتم ضبطه باستخدام CMake
يمكنك إعداد جهاز فعلي أو استخدام محاكي لتشغيل تطبيقك.
يجب أن تستخدم محاكيات الأجهزة صورة محاكي مع Google Play.
بالنسبة إلى بعض مكتبات C++، تكون "خدمات Google Play" مطلوبة على جهاز العميل، لذا راجِع هذه المحاولة في هذه الصفحة.
سجِّل الدخول إلى Firebase باستخدام حسابك على Google.
الخطوة 2: إنشاء مشروع على Firebase
قبل أن تتمكّن من إضافة Firebase إلى مشروع C++، عليك إنشاء مشروع Firebase لربطه بمشروع C++. انتقِل إلى مقالة فهم مشاريع Firebase للاطّلاع على مزيد من المعلومات عن مشاريع Firebase.
إنشاء مشروع على Firebase
-
في وحدة تحكّم Firebase، انقر على إضافة مشروع.
-
لإضافة موارد Firebase إلى مشروع Google Cloud حالي، أدخِل اسم المشروع أو اختَره من القائمة المنسدلة.
-
لإنشاء مشروع جديد، أدخِل اسم المشروع المطلوب. يمكنك أيضًا اختياريًا تعديل رقم تعريف المشروع المعروض أسفل اسم المشروع.
-
-
راجِع بنود Firebase واقبلها في حال طُلب منك ذلك.
-
انقر على متابعة.
-
(اختياري) يمكنك إعداد Google Analytics لمشروعك، ما يتيح لك الحصول على تجربة مثالية باستخدام أيّ من منتجات Firebase التالية:
اختَر إما حساب Google Analytics حاليًا أو أنشئ حسابًا جديدًا.
إذا أنشأت حسابًا جديدًا، اختَر Analytics الموقع الجغرافي لإعداد التقارير، ثم وافِق على إعدادات مشاركة البيانات وبنود Google Analytics لمشروعك.
-
انقر على إنشاء مشروع (أو إضافة Firebase، إذا كنت تستخدم مشروعًا حاليًا على Google Cloud).
توفّر Firebase الموارد تلقائيًا لمشروعك على Firebase. عند اكتمال العملية، سيتم نقلك إلى صفحة النظرة العامة لمشروع Firebase في وحدة تحكّم Firebase.
الخطوة 3: تسجيل تطبيقك في Firebase
لاستخدام Firebase في تطبيق Android، عليك تسجيل تطبيقك في مشروعك على Firebase. غالبًا ما يُشار إلى عملية تسجيل تطبيقك باسم "إضافة" تطبيقك إلى مشروعك.
انتقِل إلى وحدة تحكّم Firebase.
في وسط صفحة النظرة العامة على المشروع، انقر على رمز Android (
) أو إضافة تطبيق لبدء سير عمل الإعداد.أدخِل اسم حزمة تطبيقك في حقل اسم حزمة Android.
ما هو اسم الحزمة، وأين يمكن العثور عليه؟
يحدِّد اسم الحزمة تطبيقك بشكلٍ فريد على الجهاز وفي "متجر Google Play".
يُشار إلى اسم الحزمة غالبًا باسم رقم تعريف التطبيق.
ابحث عن اسم حزمة تطبيقك في ملف Gradle للوحدة (على مستوى التطبيق)، وهو عادةً
app/build.gradle
(مثال على اسم الحزمة:com.yourcompany.yourproject
).يُرجى العِلم أنّ قيمة اسم الحزمة حسّاسة لحالة الأحرف، ولا يمكن تغييرها لتطبيق Firebase هذا على Android بعد تسجيله في مشروعك على Firebase.
(اختياري) أدخِل معلومات التطبيق الأخرى: اسم التطبيق المعرِّف وشهادة توقيع تصحيح الأخطاء بتنسيق SHA-1.
كيف يتم استخدام اسم التطبيق المعرِّف وشهادة توقيع تصحيح الأخطاء بتنسيق SHA-1 ضمن Firebase؟
الاسم المعرِّف للتطبيق: هو معرّف داخلي لتسهيل الاستخدام لا يظهر إلا لك في وحدة تحكّم Firebase.
شهادة توقيع تصحيح الأخطاء بتنسيق SHA-1: يجب أن تتضمّن تجزئة SHA-1 Firebase Authentication (عند استخدام تسجيل الدخول باستخدام حساب Google أو تسجيل الدخول باستخدام رقم الهاتف) و Firebase Dynamic Links.
انقر على تسجيل التطبيق.
الخطوة 4: إضافة ملف إعدادات Firebase
انقر على تنزيل google-services.json للحصول على ملف إعدادات Firebase لنظام Android.
ما الذي يجب معرفته عن ملف الإعدادات هذا؟
يحتوي ملف إعدادات Firebase على معرّفات فريدة، ولكنها غير سرية لمشروعك. لمعرفة المزيد من المعلومات عن ملف الإعدادات هذا، يُرجى الانتقال إلى مقالة فهم مشاريع Firebase.
يمكنك تنزيل ملف إعداد Firebase مجددًا في أي وقت.
تأكَّد من عدم إلحاق اسم ملف الإعدادات بأحرف إضافية، مثل
(2)
.
افتح مشروع C++ في بيئة تطوير متكاملة، ثم أضِف ملف الضبط إلى مشروعك:
عمليات إنشاء Gradle: أضِف ملف الإعدادات إلى المجلد نفسه الذي يتضمّنملف
build.gradle
على مستوى القمة.أنظمة الإنشاء الأخرى: اطّلِع على أنظمة الإنشاء المخصّصة أدناه لإنشاء موارد سلاسل Android.
(عمليات إنشاء Gradle فقط) لتفعيل خدمات Firebase في مشروعك المكتوب بلغة C++، أضِف مكوّن google-services المكوّن إلى ملف
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 // ... } }
طبِّق المكوّن الإضافي لـ Google Services Gradle:
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 التي تريد استخدامها في تطبيقك.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
(بديل اختياري) استخدام ndk-build لإضافة حِزم SDK
- تأكَّد من تثبيت الإصدار 10d أو إصدار أحدث من IDE Android NDK.
نزِّل حزمة SDK لنظام التشغيل Firebase C++، ثم فك ضغط حزمة SDK في مكان مناسب لك.
لا تقتصر حزمة SDK Firebase C++ على منصة معيّنة، ولكنها تحتوي على مكتبات خاصة بالمنصة.
-
افتح ملف
local.properties
، ثم اتّبِع الخطوات التالية:- اضبط المتغيّر
firebase_cpp_sdk.dir
على الموقع لحزمة تطوير البرامج (SDK) Firebase C++ غير المضغوطة. - اضبط المتغيّر
ndk.dir
على موقع ملف بدء تشغيل Android NDK.
- اضبط المتغيّر
-
لاستخدام ميزة ndkBuild المضمّنة في Gradle، أنشئ دليلاً
jni
ضمن دليل المستوى الأعلى، ثم أنشئ ملفاتmake
التالية.-
أنشئ ملف
jni/Application.mk
يتضمّن يلي:APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION=clang APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64 APP_STL:=c++_static APP_MODULES:=android_main APP_CPPFLAGS+=-std=c++11
-
أنشئ ملف
jni/Android.mk
يتضمّن المحتوى التالي.أدرِج المكتبات لمنتج Firebase الذي تريد استخدامه. على سبيل المثال، لاستخدام Analytics:
LOCAL_PATH:=$(call my-dir)/.. ifeq ($(FIREBASE_CPP_SDK_DIR),) $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.) endif # With Firebase libraries for the selected build configuration (ABI + STL) STL:=$(firstword $(subst _, ,$(APP_STL))) FIREBASE_LIBRARY_PATH:=\ $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL) # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_app LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) # Include the Firebase library for Google Analytics. # Note: Duplicate this block for each Firebase product that you want # to use in your app, and replace variable values as appropriate. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_analytics LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:=android_main # Reference your project's C++ source files LOCAL_SRC_FILES:=\ $(LOCAL_PATH)/src/common_main.cc \ $(LOCAL_PATH)/src/android/android_main.cc LOCAL_STATIC_LIBRARIES:=\ firebase_analytics \ firebase_app # this library reference must always be listed last LOCAL_WHOLE_STATIC_LIBRARIES:=\ android_native_app_glue LOCAL_C_INCLUDES:=\ $(NDK_ROOT)/sources/android/native_app_glue \ $(LOCAL_PATH)/src LOCAL_LDLIBS:=-llog -landroid -latomic LOCAL_ARM_MODE:=arm LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined include $(BUILD_SHARED_LIBRARY) $(call import-add-path,$(NDK_ROOT)/sources/android) $(call import-module,android/native_app_glue)
-
-
افتح ملف
build.gradle
من المستوى الأعلى، ثم أكمِل الخطوات التالية:-
أضِف التبعيات لمنتجات Firebase التي تريد استخدامها. على سبيل المثال، لاستخدام Analytics:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
أضِف السطور التالية لكي يستخدم مشروعك ميزة ndk-build المضمّنة في Gradle لتضمين مكتبات Firebase المحدّدة في ملف
jni/Android.mk
.android { // ... defaultConfig { // ... externalNativeBuild.ndkBuild { arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}", "NDK_APPLICTION_MK=jni/Application.mk", sprintf("APP_PLATFORM=android-%d", android.defaultConfig.minSdkVersion.mApiLevel) } } }
-
المكتبات المتاحة لنظام التشغيل Android (باستخدام ndk-build)
ولكل منتج من منتجات Firebase تبعيات مختلفة. احرص على إضافة جميع التبعيات المُدرَجة لمنتجات Firebase التي تريد استخدامها.
أضِف مكتبات Firebase C++ (مثل libfirebase_app.a
) من خلال
إدراجها في ملف jni/Android.mk
على مستوى أعلى. بالنسبة إلى التبعيات
الأخرى (مثل com.google.firebase:firebase-auth
)، أضِفها إلى ملف
build.gradle
من المستوى الأعلى.
منتج Firebase | المكتبات والعناصر التابعة |
---|---|
AdMob |
libfirebase_admob.a (مطلوبة) libfirebase_analytics.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-ads:19.8.0' (مطلوبة) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Analytics |
libfirebase_analytics.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
App Check |
libfirebase_app_check.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-appcheck:17.0.0'
|
Authentication |
libfirebase_auth.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-auth:21.0.5'
|
Cloud Firestore |
libfirebase_firestore.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-firestore:24.1.2'
|
Cloud Functions |
libfirebase_functions.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-functions:20.1.0'
|
Cloud Messaging |
libfirebase_messaging.a (إجراء مقترَح) libfirebase_analytics.a (إجراء مطلوب) libfirebase_app.a implementation 'com.google.firebase:firebase-messaging:23.0.5' (إجراء مقترَح) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Cloud Storage |
libfirebase_storage.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-storage:20.0.1'
|
Dynamic Links |
ibfirebase_dynamic_links.a (إجراء مقترَح) libfirebase_analytics.a (إجراء مطلوب) libfirebase_app.a implementation 'com.google.firebase:firebase-dynamic-links:21.0.1' (إجراء مقترَح) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Realtime Database |
libfirebase_database.a (مطلوبة) libfirebase_app.a implementation 'com.google.firebase:firebase-database:20.0.5'
|
Remote Config |
libfirebase_remote_config.a (إجراء مقترَح) libfirebase_analytics.a (إجراء مطلوب) libfirebase_app.a implementation 'com.google.firebase:firebase-config:21.1.0' (إجراء مقترَح) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
المكتبات المتاحة
يمكنك الاطّلاع على مزيد من المعلومات حول مكتبات Firebase لـ C++ في المستندات المرجعية وفي إصدار حِزم تطوير البرامج (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
يمكنك تضمينها في
مشروعك. يطبّق هذا النص البرمجي عملية التحويل نفسها التي ينفّذها المكوّن الإضافي Gradle لخدمات Google Play عند إنشاء تطبيقات Android.
إذا كنت لا تُنشئ باستخدام Gradle (على سبيل المثال، كنت تستخدم ndk-build وملفات makefile و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) لنظام التشغيل Android بشكل سليم
بدون "خدمات Google Play" على جهاز العميل.Google Mobile Ads ومع ذلك، إذا كنت تستخدم تبعية 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. لتحويل الملف، نفِّذ الأمر التالي من الدليل نفسه الذي يتضمّن ملف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 الكمبيوتر المكتبي
تستخدم حزمة Realtime Database SDK لأجهزة الكمبيوتر المكتبي واجهة برمجة التطبيقات REST للوصول إلى قاعدة بياناتك، لذا عليك
الإفصاح عن الفهارس التي
تستخدمها مع Query::OrderByChild()
على أجهزة الكمبيوتر المكتبي وإلا لن تعمل أدوات الاستماع.
معلومات إضافية لإعداد الكمبيوتر المكتبي
مكتبات Windows
بالنسبة إلى نظام التشغيل Windows، يتم توفير إصدارات المكتبة استنادًا إلى ما يلي:
- منصة الإنشاء: وضع 32 بت (x86) مقابل وضع 64 بت (x64)
- بيئة التشغيل في Windows: تعدد مؤشرات الترابط / MT مقابل مكتبة DLL متعددة مؤشرات الترابط /MD
- الاستهداف: الإصدار العادي مقابل الإصدار التجريبي
يُرجى العِلم أنّه تم اختبار المكتبات التالية باستخدام Visual Studio 2015 و2017.
عند إنشاء تطبيقات سطح المكتب C++ على نظام التشغيل Windows، عليك ربط مكتبات Windows SDK التالية بمشروعك. يمكنك الرجوع إلى مستندات المُجمِّع للحصول على مزيد من المعلومات.
مكتبة 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)، يتم توفير إصدارات المكتبة لنظام التشغيل (x86_64) بسعة 64 بت. نوفّر أيضًا إطارات عمل لتسهيل الأمر عليك.
يُرجى العِلم أنّه تم اختبار مكتبات macOS باستخدام Xcode 13.3.1.
عند إنشاء تطبيقات C++ للكمبيوتر المكتبي على نظام التشغيل macOS، عليك ربط ما يلي بمشروعك:
- مكتبة نظام
pthread
CoreFoundation
إطار عمل نظام التشغيل macOSFoundation
إطار عمل نظام التشغيل macOSSecurity
إطار عمل نظام التشغيل macOSGSS
إطار عمل نظام التشغيل macOSKerberos
إطار عمل نظام التشغيل macOSSystemConfiguration
إطار عمل نظام التشغيل macOS
يمكنك الرجوع إلى مستندات المُجمِّع للحصول على مزيد من المعلومات.
مكتبات Linux
بالنسبة إلى نظام التشغيل Linux، يتم توفير إصدارات المكتبة لأنظمة التشغيل المتوافقة مع 32 بت (i386) و64 بت (x86_64).
يُرجى العِلم أنّه تم اختبار مكتبات Linux باستخدام GCC 4.8.0 وGCC 7.2.0 و Clang 5.0 على Ubuntu.
عند إنشاء تطبيقات سطح المكتب المكتوبة بلغة C++ على نظام التشغيل Linux، عليك ربط مكتبة النظام pthread
بمشروعك. يمكنك الرجوع إلى مستندات المُجمِّع للحصول على مزيد من المعلومات. إذا
كنت بصدد إنشاء التطبيق باستخدام الإصدار 5 من GCC أو إصدار أحدث، حدِّد -D_GLIBCXX_USE_CXX11_ABI=0
.
الخطوات التالية
اطّلِع على عيّنات من تطبيقات Firebase.
تجهيز تطبيقك للإطلاق:
- إعداد تنبيهات الميزانية لمشروعك في وحدة تحكّم Google Cloud
- يمكنك مراقبة لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على نظرة عامة على استخدام مشروعك على مستوى خدمات Firebase المتعددة.
- راجِع قائمة التحقّق من إطلاق Firebase.