يمكنك تحسين أداء ألعاب 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++ في بيئة IDE، ثم اسحب ملف التكوين إلى جذر مشروع 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 وتلقي
الإشعارات) من تفويض تطبيقك تنفيذ طرق
محددة. على سبيل المثال، قد يتطلّب تلقّي إشعار أن ينفِّذ 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: 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 باستخدام GCC 4.8.0 وGCC 7.2.0 و Clang 5.0 على Ubuntu.
عند إنشاء تطبيقات سطح المكتب المكتوبة بلغة C++ على نظام التشغيل Linux، عليك ربط مكتبة النظام pthread
بمشروعك. يمكنك الرجوع إلى مستندات المُجمِّع للحصول على مزيد من المعلومات. إذا كنت تنشئ الإصدار باستخدام GCC 5 أو إصدار أحدث، حدِّد -D_GLIBCXX_USE_CXX11_ABI=0
.
الخطوات التالية
استكشِف نماذج تطبيقات Firebase.
تجهيز تطبيقك للإطلاق:
- إعداد تنبيهات الميزانية لمشروعك في وحدة تحكّم Google Cloud
- راقِب لوحة بيانات الاستخدام والفوترة في وحدة التحكّم Firebase للحصول على صورة عامة عن استخدام مشروعك على عدّة خدمات في Firebase.
- راجِع قائمة التحقّق من إطلاق Firebase.