يمكنك تحسين أداء ألعاب C++ باستخدام حِزم تطوير البرامج (SDK) لـ Firebase C++ التي توفّر واجهة C++ على حِزم تطوير البرامج (SDK) لـ Firebase.
يمكنك الوصول إلى Firebase بالكامل من رمز C++ البرمجي، بدون الحاجة إلى كتابة أي رمز برمجي تابع للنظام الأساسي. تُترجم حزمة تطوير البرامج (SDK) لمنصّة Firebase أيضًا العديد من عبارات برمجة الخاصة بلغة معيّنة والتي تستخدمها Firebase إلى واجهة أكثر شيوعًا لمطوّري C++.
يمكنك الاطّلاع على مزيد من المعلومات عن تحسين أداء ألعابك باستخدام Firebase على صفحة ألعاب Firebase.
هل سبق لك إضافة Firebase إلى مشروع C++؟ تأكَّد من استخدام أحدث إصدار من حزمة Firebase C++ SDK.
المتطلبات الأساسية
ثبِّت ما يلي:
- Xcode 13.3.1 أو إصدار أحدث
- CocoaPods 1.12.0 أو إصدار أحدث
تأكَّد من أنّ مشروعك يستهدف إصدارات المنصة التالية أو الإصدارات الأحدث:
- الإصدار 13 من نظام التشغيل iOS
- tvOS 13
يمكنك إعداد جهاز فعلي أو استخدام المحاكي لتشغيل تطبيقك.
سجِّل الدخول إلى Firebase باستخدام حسابك على Google.
الخطوة 2: إنشاء مشروع على Firebase
قبل أن تتمكّن من إضافة Firebase إلى مشروع C++، عليك إنشاء مشروع Firebase للربط بمشروع C++. انتقِل إلى مقالة فهم مشاريع Firebase للاطّلاع على مزيد من المعلومات عن مشاريع Firebase.
الخطوة 3: تسجيل تطبيقك في Firebase
لاستخدام Firebase في تطبيقك على أجهزة Apple، عليك تسجيل تطبيقك باستخدام مشروعك على Firebase. غالبًا ما يُشار إلى عملية تسجيل تطبيقك باسم "إضافة" تطبيقك إلى مشروعك.
انتقِل إلى وحدة تحكّم Firebase.
في وسط صفحة النظرة العامة على المشروع، انقر على رمز iOS+ لبدء سير عمل الإعداد.
إذا سبق لك إضافة تطبيق إلى مشروعك على Firebase، انقر على إضافة تطبيق لعرض خيارات المنصة.
أدخِل معرّف حزمة تطبيقك في حقل معرّف الحزمة.
(اختياري) أدخِل معلومات التطبيق الأخرى: الاسم المعرِّف للتطبيق ورقم تعريف التطبيق في App Store.
انقر على تسجيل التطبيق.
الخطوة 4: إضافة ملف إعدادات Firebase
انقر على تنزيل GoogleService-Info.plist للحصول على ملف إعدادات Firebase لمنصّات Apple.
افتح مشروع C++ في بيئة تطوير متكاملة، ثم اسحب ملف الإعدادات إلى جذر مشروع C++.
اختَر إضافة ملف الإعدادات إلى جميع الاستهدافات إذا طُلب منك ذلك.
اكتملت مهام الإعداد في وحدة تحكّم Firebase. تابِع إلى إضافة حِزم تطوير البرامج (SDK) لمنصّة Firebase C++ أدناه.
الخطوة 5: إضافة حِزم تطوير البرامج (SDK) لمنصّة Firebase C++
تقدّم الخطوات الواردة في هذا القسم مثالاً على كيفية إضافة منتجات Firebase المتوافقة إلى مشروع Firebase C++.
نزِّل حزمة SDK لنظام التشغيل Firebase C++، ثم فك ضغط حزمة SDK في مكان مناسب.
لا تقتصر حزمة SDK Firebase C++ على منصة معيّنة، ولكنها تحتوي على مكتبات مخصّصة للمنصة.
أضِف مجموعات Firebase من حزمة تطوير البرامج (SDK) غير المضغوطة.
أنشئ Podfile في حال عدم توفّر ملف:
cd your-app-directory
pod init
أضِف إلى ملف Podfile مجموعات Firebase التي تريد استخدامها في تطبيقك.
تم تفعيل Analytics
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'لم يتم تفعيل Analytics
# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
ثبِّت وحدات pod، ثم افتح ملف
.xcworkspace
في Xcode.pod install
open your-app.xcworkspace
أضِف أُطر عمل Firebase من حزمة تطوير البرامج (SDK) التي تم فك ضغطها.
عادةً ما تكون أسهل طريقة لإضافة هذه الإطارات هي سحبها من نافذة
Finder
مباشرةً إلى لوحة Project Navigator (مستكشف المشاريع) في Xcode (اللوحة في أقصى يمين الشاشة تلقائيًا، أو انقر على رمز الملف في أعلى يمين Xcode).أضِف إطار عمل Firebase C++
firebase.framework
، وهو مطلوب لاستخدام أي منتج من منتجات Firebase.أضِف إطار العمل لكل منتج من منتجات Firebase التي تريد استخدامها. على سبيل المثال، لاستخدام Firebase Authentication، أضِف
firebase_auth.framework
.
في وحدة تحكّم Firebase، انقر على التالي في سير عمل الإعداد.
إذا أضفت Analytics، شغِّل تطبيقك لإرسال إثبات إلى Firebase بأنّك دمجت Firebase بنجاح. بخلاف ذلك، يمكنك تخطّي خطوة التحقّق هذه.
ستعرض سجلات جهازك عملية إثبات ملكية Firebase التي اكتملت عملية الإعداد. إذا شغّلت تطبيقك على محاكي يتيح الوصول إلى الشبكة، تُعلمك وحدة تحكّم Firebase بإكمال عملية ربط التطبيق.
اكتملت عملية الإعداد. تم تسجيل تطبيقك المكتوب بلغة C++ وضبطه لاستخدام منتجات Firebase.
المكتبات المتاحة
يمكنك الاطّلاع على مزيد من المعلومات حول مكتبات Firebase لـ C++ في المستندات المرجعية وفي إصدار حِزم تطوير البرامج (SDK) المفتوحة المصدر على GitHub.
المكتبات المتاحة لمنصّات Apple
يُرجى العلم أنّ مكتبات C++ لنظام التشغيل Android مُدرَجة في إصدار Android من صفحة الإعداد.
ولكل منتج من منتجات Firebase تبعيات مختلفة. احرص على إضافة جميع التبعيات المُدرَجة لمنتج Firebase المطلوب إلى ملف Podfile وملف برمجة C++.
قد لا يتوافق كل منتج من منتجات Firebase إلا مع مجموعة محدّدة من أنظمة التشغيل من Apple (iOS وtvOS وما إلى ذلك). يمكنك الاطّلاع على المنصات المتوافقة مع كل مكتبة في مقالة مزيد من المعلومات عن C++ وFirebase.
منتج Firebase | الإطارات الأساسية والوحدات |
---|---|
AdMob |
(مطلوبة) firebase.framework firebase_admob.framework (مطلوبة) firebase_analytics.framework pod 'FirebaseAdMob', '11.4.2' (مطلوبة) pod 'FirebaseAnalytics', '11.4.2'
|
Analytics |
(مطلوب) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.4.2'
|
App Check |
(مطلوب) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.4.2'
|
Authentication |
(مطلوب) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.4.2'
|
Cloud Firestore |
(مطلوبة) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.4.2' pod 'FirebaseAuth', '11.4.2'
|
Cloud Functions |
(مطلوب) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.4.2'
|
Cloud Messaging |
(مطلوبة) firebase.framework firebase_messaging.framework (مُقترَحة) firebase_analytics.framework pod 'FirebaseMessaging', '11.4.2' (مُقترَحة) pod 'FirebaseAnalytics', '11.4.2'
|
Cloud Storage |
(مطلوب) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.4.2'
|
Dynamic Links |
(مطلوبة) firebase.framework firebase_dynamic_links.framework (مُقترَحة) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.4.2' (مُقترَحة) pod 'FirebaseAnalytics', '11.4.2'
|
Realtime Database |
(مطلوب) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.4.2'
|
Remote Config |
(مطلوبة) firebase.framework firebase_remote_config.framework (مُقترَحة) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.4.2' (مُقترَحة) pod 'FirebaseAnalytics', '11.4.2'
|
معلومات إضافية حول إعداد الأجهزة الجوّالة
تغيير وظيفة الإجراء
على نظام التشغيل iOS، تتطلّب بعض أحداث التطبيقات (مثل فتح عناوين URL وتلقّي
الإشعارات) من مفوّض التطبيق تنفيذ methods معيّنة. على سبيل المثال، قد يتطلّب تلقّي إشعار أن ينفِّذ application:didReceiveRemoteNotification:
المفوَّض لتطبيقك. بما أنّ
كل تطبيق iOS لديه مفوّض تطبيق خاص به، تستخدم Firebase
تبديل الطريقة، الذي يسمح باستبدال طريقة بأخرى،
لإرفاق معالِجاتها الخاصة بالإضافة إلى أيّ معالِجات قد نفّذتها.
تحتاج مكتبتا Dynamic Links وCloud Messaging
إلى إرفاق عناصر المعالجة بمفوّض التطبيق باستخدام ميزة تبديل الطرق. إذا
كنت تستخدِم أيًا من منتجات Firebase هذه، ستحدِّد Firebase
فئة AppDelegate
في وقت التحميل وتُغيّر الأساليب المطلوبة فيها،
وتُنشئ سلسلة طلبات إعادة الاتصال بتنفيذ الطريقة الحالية.
إعداد سير عمل على الكمبيوتر المكتبي (إصدار تجريبي)
عند إنشاء لعبة، غالبًا ما يكون من الأسهل اختبارها على منصات الكمبيوتر المكتبي أولاً، ثم نشرها واختبارها على الأجهزة الجوّالة في مرحلة التطوير اللاحقة. لدعم سير العمل هذا، نوفّر مجموعة فرعية من حِزم 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، عليك ربط مكتبات حزمة تطوير البرامج (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)، يتم توفير إصدارات المكتبة للنظام الأساسي (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.