بازی های C++ خود را با SDK های Firebase C++ ما تقویت کنید که یک رابط C++ در بالای SDK های Firebase ارائه می دهند.
به طور کامل از کد ++C خود به Firebase دسترسی داشته باشید، بدون اینکه نیازی به نوشتن کدهای بومی پلتفرم باشید. Firebase SDK همچنین بسیاری از اصطلاحات خاص زبان مورد استفاده توسط Firebase را به یک رابط آشناتر برای توسعه دهندگان C++ ترجمه می کند.
در صفحه بازی های Firebase ما اطلاعات بیشتری در مورد تقویت بازی های خود با Firebase بیابید.
آیا قبلاً Firebase را به پروژه ++C خود اضافه کرده اید؟ مطمئن شوید که از آخرین نسخه Firebase C++ SDK استفاده میکنید.
پیش نیازها
ویرایشگر یا IDE دلخواه خود را مانند Android Studio، IntelliJ یا VS Code نصب کنید.
Android SDK را دریافت کنید.
اطمینان حاصل کنید که پروژه شما این شرایط را برآورده می کند:
سطح 21 API (Lollipop) یا بالاتر را هدف قرار می دهد
از Gradle استفاده می کند و با CMake پیکربندی شده است
یک دستگاه فیزیکی راه اندازی کنید یا از یک شبیه ساز برای اجرای برنامه خود استفاده کنید.
شبیه سازها باید از یک تصویر شبیه ساز با Google Play استفاده کنند.
برای برخی از کتابخانه های ++C، خدمات Google Play در دستگاه سرویس گیرنده مورد نیاز است. فهرست موجود در این صفحه را مرور کنید.
با استفاده از حساب Google خود وارد Firebase شوید .
مرحله 2 : یک پروژه Firebase ایجاد کنید
قبل از اینکه بتوانید Firebase را به پروژه C++ خود اضافه کنید، باید یک پروژه Firebase ایجاد کنید تا به پروژه C++ خود متصل شوید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase، از Understand Firebase Projects دیدن کنید.
مرحله 3 : برنامه خود را با Firebase ثبت کنید
برای استفاده از Firebase در برنامه Android خود، باید برنامه خود را در پروژه Firebase خود ثبت کنید. ثبت برنامه شما اغلب "افزودن" برنامه شما به پروژه شما نامیده می شود.
به کنسول Firebase بروید.
در مرکز صفحه نمای کلی پروژه، روی نماد Android (
) یا افزودن برنامه کلیک کنید تا گردش کار راه اندازی راه اندازی شود.نام بسته برنامه خود را در قسمت نام بسته Android وارد کنید.
نام بسته به طور منحصر به فرد برنامه شما را در دستگاه و در فروشگاه Google Play شناسایی می کند.
نام بسته اغلب به عنوان شناسه برنامه شناخته می شود.
نام بسته برنامه خود را در ماژول خود (سطح برنامه) فایل Gradle، معمولا
app/build.gradle
(نام بسته نمونه:com.yourcompany.yourproject
) پیدا کنید.توجه داشته باشید که مقدار نام بسته به حروف کوچک و بزرگ حساس است و نمیتوان آن را برای این برنامه Android Firebase پس از ثبت نام در پروژه Firebase تغییر داد.
(اختیاری) اطلاعات دیگر برنامه را وارد کنید: نام مستعار برنامه و گواهی امضای اشکال زدایی SHA-1 .
نام مستعار برنامه : یک شناسه داخلی و راحت که فقط برای شما در کنسول Firebase قابل مشاهده است
گواهی امضای اشکال زدایی SHA-1 : یک هش SHA-1 توسط Firebase Authentication (هنگام استفاده از ورود به سیستم Google یا ورود به شماره تلفن ) و Firebase Dynamic Links لازم است.
روی ثبت برنامه کلیک کنید.
مرحله 4 : فایل پیکربندی Firebase را اضافه کنید
برای دریافت فایل پیکربندی Android Firebase خود، روی Download google-services.json کلیک کنید.
فایل پیکربندی Firebase حاوی شناسههای منحصر به فرد، اما غیر مخفی برای پروژه شما است. برای کسب اطلاعات بیشتر در مورد این فایل پیکربندی، از Understand Firebase Projects دیدن کنید.
میتوانید فایل پیکربندی Firebase خود را دوباره در هر زمانی دانلود کنید.
مطمئن شوید که نام فایل پیکربندی با کاراکترهای اضافی مانند
(2)
اضافه نشده باشد.
پروژه ++C خود را در یک IDE باز کنید، سپس فایل پیکربندی خود را به پروژه خود اضافه کنید:
Gradle builds - فایل پیکربندی خود را به همان دایرکتوری که فایل سطح بالای
build.gradle
خود را اضافه کنید.سایر سیستمهای ساخت - برای تولید منابع رشته Android، به سیستمهای ساخت سفارشی در زیر مراجعه کنید.
(فقط بیلدهای Gradle) برای فعال کردن خدمات Firebase در پروژه ++C خود، افزونه google-services را به فایل
build.gradle
سطح بالای خود اضافه کنید.قوانینی را برای گنجاندن افزونه Google Services Gradle اضافه کنید. بررسی کنید که مخزن 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++ است.
Firebase C++ SDK را دانلود کنید، سپس SDK را در جایی مناسب از حالت فشرده خارج کنید.
Firebase C++ SDK مختص پلتفرم نیست، اما حاوی کتابخانه های مخصوص پلتفرم است.
در فایل
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 بیشتر بیاموزید.
کتابخانه های موجود برای اندروید (با استفاده از 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 NDK مراجعه کنید.
سیستم های ساخت سفارشی
Firebase اسکریپت generate_xml_from_google_services_json.py
برای تبدیل منابع google-services.json
به .xml
فراهم می کند که می توانید در پروژه خود بگنجانید. این اسکریپت همان تغییری را اعمال میکند که پلاگین خدمات Google Play Gradle هنگام ساخت برنامههای اندروید انجام میدهد.
اگر با استفاده از Gradle نمیسازید (مثلاً از ndk-build، makefiles، Visual Studio و غیره استفاده میکنید)، میتوانید از این اسکریپت برای خودکارسازی تولید منابع رشتهای Android استفاده کنید.
پروگارد
بسیاری از سیستمهای ساخت اندروید از ProGuard برای ساختها در حالت Release برای کوچک کردن اندازه برنامهها و محافظت از کد منبع جاوا استفاده میکنند.
اگر از ProGuard استفاده میکنید، باید فایلهای مربوط به کتابخانههای Firebase C++ را که در پیکربندی ProGuard خود استفاده میکنید، در libs/android/*.pro
اضافه کنید.
به عنوان مثال، با 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_services/availability.h
میتوانید دریابید که چرا خدمات Google Play در دستگاه مشتری در دسترس نیست (و سعی کنید آن را برطرف کنید).
جدول زیر لیست میکند که آیا خدمات 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
اکثر نسخههای Google Mobile Ads SDK برای 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 ایجاد کنید:
اگر فایل Android
google-services.json
را اضافه کرده اید — وقتی برنامه خود را اجرا می کنید، 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 وارد کرده اید. برای کسب اطلاعات بیشتر در مورد فایل های پیکربندی، از Understand Firebase Projects دیدن کنید.
SDK های Firebase را به پروژه C++ خود اضافه کنید.
مراحل زیر به عنوان نمونه ای از نحوه افزودن هر محصول Firebase پشتیبانی شده به پروژه ++C خود است. در این مثال، افزودن Firebase Authentication و Firebase Realtime Database طی می کنیم.
متغیر محیطی
FIREBASE_CPP_SDK_DIR
خود را روی مکان زیپ نشده Firebase C++ SDK تنظیم کنید.به فایل
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 خود را اجرا کنید.
کتابخانه های موجود (رومیزی)
Firebase C++ SDK شامل پشتیبانی از گردش کار دسکتاپ برای زیرمجموعهای از ویژگیها میشود که امکان استفاده از بخشهای خاصی از Firebase را در ساختهای دسکتاپ مستقل در ویندوز، macOS و لینوکس فراهم میکند.
محصول 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()
روی دسکتاپ استفاده میکنید، اعلام کنید وگرنه شنوندگان شما با شکست مواجه میشوند.
اطلاعات اضافی برای راه اندازی دسکتاپ
کتابخانه های ویندوز
برای ویندوز، نسخه های کتابخانه بر اساس موارد زیر ارائه می شود:
- پلتفرم ساخت: حالت 32 بیتی (x86) در مقابل 64 بیتی (x64).
- محیط اجرای ویندوز: Multithreaded / MT vs Multithreaded DLL /MD
- هدف: انتشار در مقابل اشکال زدایی
توجه داشته باشید که کتابخانه های زیر با استفاده از Visual Studio 2015 و 2017 تست شده اند.
هنگام ساخت برنامه های دسکتاپ C++ در ویندوز، کتابخانه های Windows SDK زیر را به پروژه خود پیوند دهید. برای اطلاعات بیشتر با مستندات کامپایلر خود مشورت کنید.
کتابخانه Firebase C++ | وابستگی های کتابخانه SDK ویندوز |
---|---|
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 (داروین)، نسخه های کتابخانه ای برای پلتفرم 64 بیتی (x86_64) ارائه شده است. چارچوب هایی نیز برای راحتی شما ارائه شده است.
توجه داشته باشید که کتابخانههای macOS با استفاده از Xcode 13.3.1 آزمایش شدهاند.
هنگام ساخت برنامه های دسکتاپ C++ در macOS، موارد زیر را به پروژه خود پیوند دهید:
- کتابخانه سیستم
pthread
- چارچوب سیستم MacOS
CoreFoundation
-
Foundation
سیستم عامل macOS - چارچوب سیستم
Security
macOS - چارچوب سیستم
GSS
macOS - چارچوب سیستم
Kerberos
macOS -
SystemConfiguration
چارچوب سیستم macOS
برای اطلاعات بیشتر با مستندات کامپایلر خود مشورت کنید.
کتابخانه های لینوکس
برای لینوکس، نسخه های کتابخانه ای برای پلتفرم های 32 بیتی (i386) و 64 بیتی (x86_64) ارائه شده است.
توجه داشته باشید که کتابخانه های لینوکس با استفاده از GCC 4.8.0، GCC 7.2.0 و Clang 5.0 در اوبونتو آزمایش شده اند.
هنگام ساخت برنامه های دسکتاپ C++ در لینوکس، کتابخانه سیستم pthread
را به پروژه خود پیوند دهید. برای اطلاعات بیشتر با مستندات کامپایلر خود مشورت کنید. اگر در حال ساخت با GCC 5 یا بالاتر هستید، -D_GLIBCXX_USE_CXX11_ABI=0
را تعریف کنید.
مراحل بعدی
نمونه برنامه های Firebase را کاوش کنید.
SDK منبع باز را در GitHub کاوش کنید.
برای راه اندازی برنامه خود آماده شوید:
- هشدارهای بودجه را برای پروژه خود در کنسول Google Cloud تنظیم کنید.
- داشبورد استفاده و صورتحساب را در کنسول Firebase نظارت کنید تا تصویری کلی از استفاده از پروژه خود در چندین سرویس Firebase داشته باشید.
- چک لیست راه اندازی Firebase را مرور کنید.