بازیهای ++C خود را با کیتهای توسعه نرمافزار Firebase در ++C ما که یک میانای ++C در بالای کیتهای توسعه نرمافزار Firebase ارائه میدهند، تقویت کنید.
بهطور کامل از کد C++ خود به Firebase دسترسی داشته باشید، بدون اینکه نیاز به نوشتن هیچ کد بومی پلاتفرم داشته باشید. کیت توسعه نرمافزار Firebase همچنین بسیاری از اصطلاحات خاص زبان را که توسط Firebase استفاده میشود به رابطی ترجمه میکند که برای توسعهدهندگان C++ آشناتر است.
برای کسب اطلاعات بیشتر درباره تقویت بازیهایتان با Firebase، به صفحه بازیهای Firebase ما مراجعه کنید.
قبلاً Firebase را به پروژه C++ خود اضافه کردهاید؟ مطمئن شوید که از جدیدترین نسخه Firebase C++ SDK استفاده میکنید.
پیشنیازها
ویرایشگر یا IDE دلخواهتان را نصب کنید، مثلاً Android Studio، IntelliJ، یا VS Code.
کیت توسعه نرمافزار Android را دریافت کنید.
مطمئن شوید پروژهتان این الزامات را برآورده میکند:
سطح میانای برنامهسازی کاربردی هدف ۲۴ (Nougat) یا بالاتر
از Gradle استفاده میکند و با CMake پیکربندی شده است
دستگاهی فیزیکی راهاندازی کنید یا از شبیهساز برای اجرای برنامهتان استفاده کنید.
شبیهسازها باید از تصویر شبیهساز با Google Play استفاده کنند.
برای برخیاز کتابخانههای ++C، «خدمات Google Play» در دستگاه کارخواه لازم است؛ فهرست موجود در این صفحه را مرور کنید.
بااستفاده از حساب Google خود، به سیستم Firebase وارد شوید.
مرحله ۲: ایجاد پروژه Firebase
قبلاز اینکه بتوانید Firebase را به پروژه C++ خود اضافه کنید، باید یک پروژه Firebase ایجاد کنید تا به پروژه C++ خود متصل شوید. برای کسب اطلاعات بیشتر درباره پروژههای Firebase، به آشنایی با پروژههای Firebase مراجعه کنید.
مرحله ۳: ثبت برنامه در Firebase
برای استفاده از Firebase در برنامه Android، باید برنامهتان را در پروژه Firebase ثبت کنید. ثبت کردن برنامه اغلب «افزودن» برنامه به پروژه نامیده میشود.
به کنسول Firebase بروید.
در مرکز صفحه نمای کلی پروژه، روی نماد Android () یا افزودن برنامه کلیک کنید تا گردش کار راهاندازی شروع شود.
نام بسته برنامهتان را در فیلد نام بسته Android وارد کنید.
(اختیاری) نام مستعار برنامه را وارد کنید که شناسهای داخلی و راحت است و فقط برای شما در کنسول Firebase قابلمشاهده است.
روی ثبت برنامه کلیک کنید.
مرحله ۴: افزودن فایل پیکربندی Firebase
روی بارگیری google-services.json کلیک کنید تا فایل پیکربندی Firebase Android را دریافت کنید.
پروژه C++ خود را در IDE باز کنید، سپس فایل پیکربندی خود را به پروژه اضافه کنید:
ساختهای Gradle — فایل پیکربندیتان را به همان دایرکتوری فایل
build.gradleسطح بالای خود اضافه کنید.سایر سیستمهای ساخت — برای تولید منابع رشته Android، سیستمهای ساخت سفارشی را در زیر ببینید.
(فقط Gradle builds) برای فعال کردن سرویسهای Firebase در پروژه C++، افزونه Google services Gradle را به فایل
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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.1' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }افزایه Gradle خدمات Google را اعمال کنید:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
تکالیف راهاندازی را در کنسول Firebase انجام دادهاید. به افزودن کیتهای توسعه نرمافزار Firebase در ++C در زیر بروید.
مرحله ۵: افزودن کیتهای توسعه نرمافزار Firebase در ++C
مراحل این بخش نمونهای از نحوه افزودن محصولات Firebase پشتیبانیشده به پروژه Firebase C++ شما است.
کیت توسعه نرمافزار Firebase C++ را بارگیری کنید، سپس کیت توسعه نرمافزار را در جایی مناسب از حالت فشرده خارج کنید.
کیت توسعه نرمافزار Firebase C++ مختص پلاتفرم نیست، اما حاوی کتابخانههای مختص پلاتفرم است.
در فایل
gradle.propertiesپروژهتان، مکان کیت توسعه نرمافزار از حالت فشرده خارجشده را مشخص کنید: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 در اسناد مرجع و در نسخه کیت توسعه نرمافزار متنباز ما در GitHub بیشتر بدانید.
کتابخانههای دردسترس برای Android (بااستفاده از CMake)
توجه داشته باشید که کتابخانههای ++C برای پلاتفرمهای Apple در نسخه پلاتفرمهای Apple (iOS+) این صفحه راهاندازی فهرست شدهاند.
| محصول Firebase | مرجعهای کتابخانه ( firebaseCpp.dependenciesبرای فایل build.gradle) |
مرجعهای کتابخانه ( firebase_libsبرای فایل CMakeLists.txt) |
|---|---|---|
| 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
|
| Realtime Database | database |
firebase_database(الزامی) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(توصیهشده) firebase_analytics(ضروری) firebase_app
|
| کتابخانههای منسوخشده یا پشتیبانینشده | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(توصیهشده) 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، فایلهای make، 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_services/availability.h
میتوانید دلیل دردسترس نبودن «خدمات Google Play» در دستگاه کارخواه را پیدا کنید (و برای رفع آن تلاش کنید).
جدول زیر نشان میدهد که آیا «خدمات Google Play» در دستگاه مشتری برای هر محصول Firebase پشتیبانیشده لازم است یا نه.
| کتابخانه Firebase C++ | آیا خدمات Google Play در دستگاه کارخواه لازم است؟ |
|---|---|
| Analytics | الزامی نیست |
| Authentication | ضروری |
| Cloud Firestore | ضروری |
| Cloud Functions | ضروری |
| Cloud Messaging | ضروری |
| Cloud Storage | ضروری |
| Dynamic Links | ضروری |
| Realtime Database | ضروری |
| Remote Config | ضروری |
راهاندازی گردش کار رایانه (نسخه بتا)
وقتی بازیای میسازید، اغلب بسیار آسانتر است که ابتدا بازیتان را در پلاتفرمهای رایانه آزمایش کنید، سپس در مراحل بعدی توسعه آن را در دستگاههای همراه مستقر و آزمایش کنید. برای پشتیبانی از این گردش کار، زیرمجموعهای از کیتهای توسعه نرمافزار Firebase C++ را ارائه میدهیم که میتوانند در Windows، macOS، Linux، و از داخل ویرایشگر ++C اجرا شوند.
برای گردش کار رایانه، باید موارد زیر را تکمیل کنید:
- پروژه C++ خود را برای CMake پیکربندی کنید.
- ایجاد پروژه Firebase
- ثبت کردن برنامه (iOS یا Android) در Firebase
- افزودن فایل پیکربندی Firebase پلاتفرم تلفن همراه
نسخه رایانه فایل پیکربندی Firebase را ایجاد کنید:
اگر فایل Android
google-services.jsonرا اضافه کردهاید — وقتی برنامهتان را اجرا میکنید، Firebase این فایل تلفن همراه را پیدا میکند، سپس بهطور خودکار فایل پیکربندی Firebase رایانه (google-services-desktop.json) را تولید میکند.اگر فایل
GoogleService-Info.plistiOS را اضافه کردهاید — قبلاز اجرای برنامهتان، باید این فایل تلفن همراه را به فایل پیکربندی Firebase رایانه تبدیل کنید. برای تبدیل فایل، فرمان زیر را از همان فهرست راهنمای فایلGoogleService-Info.plistاجرا کنید:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
این فایل پیکربندی رایانه حاوی شناسه پروژه C++ است که در گردش کار راهاندازی کنسول Firebase وارد کردهاید. برای کسب اطلاعات بیشتر درباره فایلهای پیکربندی، به آشنایی با پروژههای Firebase مراجعه کنید.
کیتهای توسعه نرمافزار Firebase را به پروژه C++ خود اضافه کنید.
مراحل زیر بهعنوان نمونهای از نحوه افزودن هر محصول Firebase پشتیبانیشده به پروژه C++ شما ارائه شده است. در این مثال، مراحل افزودن Firebase Authentication و Firebase Realtime Database را توضیح میدهیم.
متغیر محیطی
FIREBASE_CPP_SDK_DIRرا روی مکان کیت توسعه نرمافزار 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++ خود را اجرا کنید.
کتابخانههای دردسترس (رایانه)
Firebase C++ SDK شامل پشتیبانی از گردش کار رایانه برای زیرمجموعهای از ویژگیها است که امکان استفاده از بخشهای خاصی از 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
Realtime Database SDK برای رایانه از REST برای دسترسی به پایگاه داده شما استفاده میکند، بنابراین باید
نمایههایی را که
با Query::OrderByChild() در رایانه استفاده میکنید اعلام کنید، درغیراینصورت شنوندگان شما با شکست مواجه خواهند شد.
اطلاعات بیشتر برای راهاندازی رایانه
کتابخانههای Windows
برای Windows، نسخههای کتابخانه براساس موارد زیر ارائه میشود:
- پلاتفرم ساخت: حالت ۳۲ بیتی (x86) درمقابل ۶۴ بیتی (x64)
- محیط زمان اجرای Windows: چندرشتهای / MT درمقابل DLL چندرشتهای /MD
- هدف: Release درمقابل Debug
توجه داشته باشید که کتابخانههای زیر بااستفاده از Visual Studio 2015 و 2017 آزمایش شدهاند.
هنگام ساختن برنامههای رایانهای C++ در Windows، کتابخانههای Windows SDK زیر را به پروژهتان پیوند دهید. برای اطلاعات بیشتر، به اسناد کامپایلر خود مراجعه کنید.
| کتابخانه Firebase C++ | وابستگیهای کتابخانه کیت توسعه نرمافزار 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) ارائه میشود. چارچوبها نیز برای راحتی شما ارائه شده است.
توجه داشته باشید که کتابخانههای macOS بااستفاده از Xcode نسخه ۲۶.۲ آزمایش شدهاند.
هنگام ساختن برنامههای رایانهای C++ در macOS، موارد زیر را به پروژهتان پیوند دهید:
-
pthreadکتابخانه سیستم CoreFoundationچارچوب سیستم macOS- چارچوب سیستم macOS
Foundation - چارچوب سیستم macOS
Security - چارچوب سیستم macOS
GSS Kerberosچارچوب سیستم macOS- چارچوب سیستم macOS
SystemConfiguration
برای اطلاعات بیشتر، به مستندات کامپایلر خود مراجعه کنید.
کتابخانههای Linux
برای Linux، نسخههای کتابخانه برای پلاتفرمهای ۳۲ بیتی (i386) و ۶۴ بیتی (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 را کاوش کنید.
کیت توسعه نرمافزار متنباز را در GitHub کاوش کنید.
آماده شدن برای راهاندازی برنامه:
- هشدارهای بودجه را برای پروژهتان در کنسول Google Cloud راهاندازی کنید.
- داشبورد استفاده و صورتحساب را در کنسول Firebase پایش کنید تا تصویری کلی از استفاده پروژهتان در چندین سرویس Firebase بهدست آورید.
- بازبینه راهاندازی Firebase را مرور کنید.