يمكنك تعزيز أداء ألعابك المصمّمة بلغة C++ باستخدام حِزم تطوير البرامج (SDK) المصمّمة بلغة C++ من Firebase والتي توفّر واجهة C++ بالإضافة إلى حِزم تطوير البرامج (SDK) من Firebase.
يمكنك الوصول إلى Firebase بالكامل من خلال رمز C++، بدون الحاجة إلى كتابة أي رمز برمجي أصلي للنظام الأساسي. وتترجم حزمة Firebase SDK أيضًا العديد من المصطلحات الخاصة باللغة التي تستخدمها Firebase إلى واجهة مألوفة أكثر لمطوّري لغة C++.
يمكنك الاطّلاع على مزيد من المعلومات حول تحسين ألعابك باستخدام Firebase في صفحة ألعاب Firebase.
هل سبق لك إضافة Firebase إلى مشروع C++؟ تأكَّد من استخدام أحدث إصدار من حزمة تطوير البرامج (SDK) لـ Firebase C++.
المتطلبات الأساسية
ثبِّت ما يلي:
- الإصدار 26.2 من Xcode أو إصدار أحدث
تأكَّد من أنّ مشروعك يستهدف إصدارات المنصات التالية أو إصدارات أحدث:
- iOS 15
- tvOS 15
اضبط إعدادات جهاز فعلي أو استخدِم المحاكي لتشغيل تطبيقك.
سجِّل الدخول إلى 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 للحصول على ملف إعداد منصات Apple في Firebase.
افتح مشروع C++ في بيئة تطوير متكاملة (IDE)، ثم اسحب ملف الإعداد إلى جذر مشروع C++.
إذا طُلب منك ذلك، اختَر إضافة ملف الإعداد إلى جميع الأهداف.
لقد انتهيت من مهام الإعداد في وحدة تحكّم Firebase. انتقِل إلى قسم إضافة حزم تطوير البرامج (SDK) لـ Firebase C++ أدناه.
الخطوة 5: إضافة حِزم تطوير البرامج (SDK) لـ Firebase C++
الخطوات الواردة في هذا القسم هي مثال على كيفية إضافة منتجات Firebase المتوافقة إلى مشروع Firebase C++.
نزِّل حزمة تطوير البرامج (SDK) لـ Firebase C++، ثم فُكّ ضغطها في مكان مناسب.
لا تقتصر حزمة تطوير البرامج (SDK) لـ Firebase C++ على نظام أساسي معيّن، ولكنّها تحتوي على مكتبات مخصّصة لأنظمة أساسية معيّنة.
استخدِم Swift Package Manager لتثبيت وإدارة التبعيات الخاصة بحزمة تطوير البرامج (SDK) لمنصات Apple من Firebase.
في Xcode، افتح مشروع تطبيقك، ثم انتقِل إلى ملف > إضافة موارد الاعتمادية للحزمة (File > Add Package Dependencies).
عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصات Apple في Firebase:
https://github.com/firebase/firebase-ios-sdk.git
بالنسبة إلى قاعدة الاعتمادية، اختَر الإصدار الدقيق وأدخِل
13.1.1.اختَر مكتبات Firebase التي تريد استخدامها في تطبيقك (على سبيل المثال،
FirebaseAuthوFirebaseDatabase). إذا كانت خدمة Google Analytics مفعَّلة في مشروع Firebase، تأكَّد من إضافةFirebaseAnalytics.
بعد الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات المرتبطة بحِزمك وتنزيلها في الخلفية.
أضِف حِزم XCFrameworks من Firebase من دليل
xcframeworksلحزمة تطوير البرامج (SDK) التي تم فك ضغطها.أسهل طريقة لإضافة حِزم XCFrameworks هذه هي عادةً سحبها من نافذة
Finderمباشرةً إلى لوحة Project Navigator في Xcode (اللوحة في أقصى اليمين تلقائيًا، أو انقر على رمز الملف في أعلى يمين Xcode) وإضافتها إلى هدف إصدار تطبيقك.أضِف حزمة Firebase C++ XCFramework
firebase.xcframework، وهي مطلوبة لاستخدام أي منتج من Firebase.أضِف XCFramework لكل منتج من منتجات Firebase تريد استخدامه. على سبيل المثال، لاستخدام Firebase Authentication، أضِف
firebase_auth.xcframework.
في وحدة تحكّم Firebase، في سير عمل الإعداد، انقر على التالي.
إذا أضفت Analytics، شغِّل تطبيقك لإرسال إثبات إلى Firebase بأنّك دمجت Firebase بنجاح. وإلا، يمكنك تخطي خطوة التحقق هذه.
ستعرض سجلّات جهازك عملية التحقّق من Firebase التي تشير إلى اكتمال عملية الإعداد. إذا شغّلت تطبيقك على محاكي لديه إمكانية الوصول إلى الشبكة، ستعلمك وحدة تحكّم Firebase بأنّ عملية ربط تطبيقك قد اكتملت.
اكتملت عملية الإعداد. تم تسجيل تطبيق C++ وإعداده لاستخدام منتجات Firebase.
المكتبات المتاحة
يمكنك الاطّلاع على مزيد من المعلومات حول مكتبات Firebase بلغة C++ في المستندات المرجعية وفي إصدار حزمة تطوير البرامج (SDK) المفتوحة المصدر على GitHub.
المكتبات المتاحة لمنصات Apple
يُرجى العِلم أنّ مكتبات C++ لنظام التشغيل Android مُدرَجة في إصدار Android من صفحة الإعداد هذه.
لكل منتج من منتجات Firebase تبعيات مختلفة. تأكَّد من إضافة جميع التبعيات المدرَجة لمنتج Firebase المحدّد باستخدام Swift Package Manager وفي مشروع C++.
قد يتيح كل منتج من منتجات Firebase مجموعة محدّدة من أنظمة تشغيل Apple (مثل iOS وtvOS وما إلى ذلك). يمكنك الاطّلاع على المنصات المتوافقة مع كل مكتبة في مزيد من المعلومات حول C++ وFirebase.
| منتج Firebase | مكتبات XCFrameworks وSwift Package Manager |
|---|---|
| Analytics |
(مطلوب) firebase.xcframeworkfirebase_analytics.xcframeworkFirebaseAnalytics (13.1.1)
|
| App Check |
(مطلوب) firebase.xcframeworkfirebase_app_check.xcframeworkFirebaseAppCheck (13.1.1)
|
| Authentication |
(مطلوب) firebase.xcframeworkfirebase_auth.xcframeworkFirebaseAuth (13.1.1)
|
| Cloud Firestore |
(مطلوب) firebase.xcframeworkfirebase_firestore.xcframeworkfirebase_auth.xcframeworkFirebaseFirestore (13.1.1)FirebaseAuth (13.1.1)
|
| Cloud Functions |
(مطلوب) firebase.xcframeworkfirebase_functions.xcframeworkFirebaseFunctions (13.1.1)
|
| Cloud Messaging |
(مطلوبة) firebase.xcframeworkfirebase_messaging.xcframework(يُنصح بها) firebase_analytics.xcframeworkFirebaseMessaging (13.1.1)(يُنصح بها) FirebaseAnalytics (13.1.1)
|
| Cloud Storage |
(مطلوب) firebase.xcframeworkfirebase_storage.xcframeworkFirebaseStorage (13.1.1)
|
| Realtime Database |
(مطلوب) firebase.xcframeworkfirebase_database.xcframeworkFirebaseDatabase (13.1.1)
|
| Remote Config |
(مطلوب) firebase.xcframeworkfirebase_remote_config.xcframework(يُنصح به) firebase_analytics.xcframeworkFirebaseRemoteConfig (13.1.1)(يُنصح به) FirebaseAnalytics (13.1.1)
|
| المكتبات المتوقّفة نهائيًا أو غير المتوافقة | |
| Dynamic Links |
(مطلوبة) firebase.xcframeworkfirebase_dynamic_links.xcframework(يُنصح بها) firebase_analytics.xcframeworkFirebaseDynamicLinks (13.1.1)(يُنصح بها) FirebaseAnalytics (13.1.1)
|
معلومات إضافية حول الإعداد على الأجهزة الجوّالة
الدمج بدون استخدام Swift Package Manager
إذا كنت لا تريد استخدام Swift Package Manager لإدارة تبعيات حزمة تطوير البرامج (SDK) الأساسية لمنصات Firebase Apple، يُرجى الاطّلاع على الدمج بدون استخدام Swift Package Manager في دليل إعداد منصات Apple للحصول على خيارات دمج بديلة.
تغيير وظيفة الإجراء
على نظام التشغيل 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).إذا أضفت ملف iOS
GoogleService-Info.plist: قبل تشغيل تطبيقك، عليك تحويل ملف الأجهزة الجوّالة هذا إلى ملف إعداد 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_firestorefirebase_authfirebase_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: سلاسل تعليمات متعددة / MT مقابل مكتبة الربط الديناميكي لسلاسل التعليمات المتعددة / 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 26.2.
عند إنشاء تطبيقات C++ متوافقة مع الكمبيوتر المكتبي على نظام التشغيل macOS، اربط ما يلي بمشروعك:
- مكتبة نظام واحدة (
pthread) - إطار عمل نظام macOS واحد (
CoreFoundation) - إطار عمل نظام macOS واحد (
Foundation) - إطار عمل نظام macOS واحد (
Security) - إطار عمل نظام macOS واحد (
GSS) - إطار عمل نظام macOS واحد (
Kerberos) - إطار عمل نظام macOS واحد (
SystemConfiguration)
يُرجى الرجوع إلى مستندات برنامج التجميع للحصول على مزيد من المعلومات.
مكتبات 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.
يمكنك استكشاف حزمة تطوير البرامج (SDK) المفتوحة المصدر في GitHub.
الاستعداد لإطلاق تطبيقك:
- يمكنك إعداد تنبيهات بشأن الميزانية لمشروعك في وحدة تحكّم Google Cloud.
- يمكنك مراقبة لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على نظرة عامة على استخدام مشروعك في خدمات Firebase المتعدّدة.
- راجِع قائمة التحقّق من إطلاق Firebase.