بازی های C++ خود را با SDK های Firebase C++ ما تقویت کنید که یک رابط C++ در بالای SDK های Firebase ارائه می دهند.
به طور کامل از کد ++C خود به Firebase دسترسی داشته باشید، بدون اینکه نیازی به نوشتن کدهای بومی پلتفرم باشید. Firebase SDK همچنین بسیاری از اصطلاحات خاص زبان مورد استفاده توسط Firebase را به یک رابط آشناتر برای توسعه دهندگان C++ ترجمه می کند.
در صفحه بازی های Firebase ما اطلاعات بیشتری در مورد تقویت بازی های خود با Firebase بیابید.
آیا قبلاً Firebase را به پروژه ++C خود اضافه کرده اید؟ مطمئن شوید که از آخرین نسخه Firebase C++ SDK استفاده میکنید.
پیش نیازها
موارد زیر را نصب کنید:
- Xcode 13.3.1 یا بالاتر
- CocoaPods 1.10.0 یا بالاتر
مطمئن شوید که پروژه شما نسخه های پلتفرم زیر یا نسخه های جدیدتر را هدف قرار می دهد:
- iOS 11
- tvOS 12
یک دستگاه فیزیکی راه اندازی کنید یا از شبیه ساز برای اجرای برنامه خود استفاده کنید.
برای پیامرسانی ابری در پلتفرمهای اپل، پیشنیازها در اینجا آمده است:
- یک دستگاه اپل فیزیکی را تنظیم کنید.
- یک کلید تأیید اعتبار Apple Push Notification برای حساب Apple Developer خود دریافت کنید.
- Push Notifications را در Xcode در قسمت App > Capabilities فعال کنید.
با استفاده از حساب Google خود وارد Firebase شوید .
مرحله 2 : یک پروژه Firebase ایجاد کنید
قبل از اینکه بتوانید Firebase را به پروژه C++ خود اضافه کنید، باید یک پروژه Firebase ایجاد کنید تا به پروژه C++ خود متصل شوید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase ، از Understand Firebase Projects دیدن کنید.
مرحله 3 : برنامه خود را با Firebase ثبت کنید
برای استفاده از Firebase در برنامه Apple خود، باید برنامه خود را در پروژه Firebase خود ثبت کنید. ثبت برنامه شما اغلب "افزودن" برنامه شما به پروژه شما نامیده می شود.
به کنسول Firebase بروید.
در مرکز صفحه نمای کلی پروژه، روی نماد iOS+ کلیک کنید تا گردش کار راه اندازی شود.
اگر قبلاً برنامهای را به پروژه Firebase خود اضافه کردهاید، روی افزودن برنامه کلیک کنید تا گزینههای پلتفرم نمایش داده شوند.
شناسه بسته نرم افزاری خود را در قسمت شناسه بسته وارد کنید.
شناسه بسته نرم افزاری به طور منحصر به فرد یک برنامه را در اکوسیستم اپل شناسایی می کند.
شناسه بسته خود را پیدا کنید: پروژه خود را در Xcode باز کنید، برنامه سطح بالا را در ناوبر پروژه انتخاب کنید، سپس برگه General را انتخاب کنید.
مقدار فیلد Bundle Identifier، شناسه بسته است (به عنوان مثال،
com.yourcompany.yourproject
).توجه داشته باشید که مقدار ID بسته به حروف کوچک و بزرگ حساس است و نمیتوان آن را برای این برنامه Firebase پس از ثبت در پروژه Firebase تغییر داد.
(اختیاری) اطلاعات دیگر برنامه را وارد کنید: نام مستعار برنامه و شناسه فروشگاه App .
نام مستعار برنامه : یک شناسه داخلی و راحت که فقط برای شما در کنسول Firebase قابل مشاهده است
شناسه فروشگاه App : توسط Firebase Dynamic Links برای هدایت کاربران به صفحه App Store شما و توسط Google Analytics برای وارد کردن رویدادهای تبدیل به Google Ads استفاده میشود. اگر برنامه شما هنوز شناسه فروشگاه App ندارد، میتوانید شناسه را بعداً در تنظیمات پروژه خود اضافه کنید.
روی ثبت برنامه کلیک کنید.
مرحله 4 : فایل پیکربندی Firebase را اضافه کنید
روی Download GoogleService-Info.plist کلیک کنید تا فایل پیکربندی پلتفرم های Apple Firebase خود را دریافت کنید.
فایل پیکربندی Firebase حاوی شناسههای منحصر به فرد، اما غیر مخفی برای پروژه شما است. برای کسب اطلاعات بیشتر در مورد این فایل پیکربندی، از Understand Firebase Projects دیدن کنید.
میتوانید فایل پیکربندی Firebase خود را دوباره در هر زمانی دانلود کنید.
مطمئن شوید که نام فایل پیکربندی با کاراکترهای اضافی مانند
(2)
اضافه نشده باشد.
پروژه ++C خود را در یک IDE باز کنید، سپس فایل پیکربندی خود را به ریشه پروژه C++ خود بکشید.
اگر از شما خواسته شد، انتخاب کنید تا فایل پیکربندی را به همه اهداف اضافه کنید.
کار راهاندازی در کنسول Firebase تمام شده است. افزودن SDK های Firebase C++ را در زیر ادامه دهید.
مرحله 5 : SDK های Firebase C++ را اضافه کنید
مراحل این بخش نمونه ای از نحوه افزودن محصولات Firebase پشتیبانی شده به پروژه Firebase C++ است.
Firebase C++ SDK را دانلود کنید، سپس SDK را در جایی مناسب از حالت فشرده خارج کنید.
Firebase C++ SDK مختص پلتفرم نیست، اما حاوی کتابخانه های مخصوص پلتفرم است.
پادهای Firebase را از SDK خارجشده اضافه کنید.
اگر قبلاً آن را ندارید، یک پادفایل ایجاد کنید:
cd your-app-directory
pod init
به Podfile خود، غلاف های Firebase را که می خواهید در برنامه خود استفاده کنید، اضافه کنید.
تجزیه و تحلیل فعال شد
# 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'تجزیه و تحلیل فعال نیست
# 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'
پادها را نصب کنید، سپس فایل
.xcworkspace
را در Xcode باز کنید.pod install
open your-app.xcworkspace
فریمورکهای Firebase را از SDK خارجشده اضافه کنید.
سادهترین راه برای افزودن این فریمورکها معمولاً کشیدن آنها از پنجره
Finder
است که مستقیماً به پنجره Xcode's Project Navigator (به طور پیشفرض پنجره سمت چپ، یا روی نماد فایل در سمت چپ بالای Xcode کلیک کنید).چارچوب Firebase C++
firebase.framework
اضافه کنید، که برای استفاده از هر محصول Firebase لازم است.برای هر محصول Firebase که میخواهید استفاده کنید، چارچوبی اضافه کنید. به عنوان مثال، برای استفاده از Firebase Authentication،
firebase_auth.framework
را اضافه کنید.
در کنسول Firebase، در گردش کار راه اندازی، روی Next کلیک کنید.
اگر Analytics را اضافه کردهاید، برنامه خود را اجرا کنید تا تأییدیه به Firebase ارسال شود که Firebase را با موفقیت ادغام کردهاید. در غیر این صورت، می توانید از این مرحله تأیید رد شوید.
گزارشهای دستگاه شما تأیید Firebase را نشان میدهد که اولیهسازی کامل شده است. اگر برنامه خود را روی شبیهسازی اجرا کردهاید که به شبکه دسترسی دارد، کنسول Firebase به شما اطلاع میدهد که اتصال برنامه شما کامل شده است.
شما آماده اید! برنامه C++ شما برای استفاده از محصولات Firebase ثبت و پیکربندی شده است.
کتابخانه های موجود
درباره کتابخانه های C++ Firebase در مستندات مرجع و در نسخه SDK منبع باز ما در GitHub بیشتر بیاموزید.
کتابخانه های موجود برای پلتفرم های اپل
توجه داشته باشید که کتابخانههای ++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', '10.6.0' (الزامی) pod 'FirebaseAnalytics', '10.6.0' |
تجزیه و تحلیل | (لازم) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.6.0' |
احراز هویت | (لازم) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.6.0' |
Cloud Firestore | (لازم) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.6.0' pod 'FirebaseAuth', '10.6.0' |
توابع ابری | (لازم) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.6.0' |
پیام رسانی ابری | (لازم) firebase.framework firebase_messaging.framework (توصیه می شود) firebase_analytics.framework pod 'FirebaseMessaging', '10.6.0' (توصیه می شود) pod 'FirebaseAnalytics', '10.6.0' |
فضای ذخیره ابری | (لازم) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.6.0' |
لینک های پویا | (لازم) firebase.framework firebase_dynamic_links.framework (توصیه می شود) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.6.0' (توصیه می شود) pod 'FirebaseAnalytics', '10.6.0' |
پایگاه داده بیدرنگ | (لازم) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.6.0' |
پیکربندی از راه دور | (لازم) firebase.framework firebase_remote_config.framework (توصیه می شود) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.6.0' (توصیه می شود) pod 'FirebaseAnalytics', '10.6.0' |
اطلاعات اضافی برای راه اندازی تلفن همراه
روش swizzling
در iOS، برخی رویدادهای برنامه (مانند باز کردن URL ها و دریافت اعلان ها) به نماینده برنامه شما نیاز دارند تا روش های خاصی را پیاده سازی کنند. برای مثال، دریافت یک اعلان ممکن است به نماینده برنامه شما نیاز داشته باشد که application:didReceiveRemoteNotification:
. از آنجا که هر برنامه iOS نماینده برنامه مخصوص به خود را دارد، Firebase از روش Swizzling استفاده می کند که امکان جایگزینی یک روش با روش دیگر را فراهم می کند تا کنترل کننده های خود را علاوه بر هر چیزی که ممکن است پیاده سازی کرده باشید، متصل کند.
کتابخانههای پیوندهای پویا و پیامرسانی ابری باید با استفاده از روش Swizzling، کنترلکنندهها را به نماینده برنامه متصل کنند. اگر از هر یک از این محصولات Firebase استفاده میکنید، در زمان بارگذاری، Firebase کلاس AppDelegate
شما را شناسایی میکند و روشهای مورد نیاز را روی آن جابجا میکند و یک فراخوانی را به پیادهسازی روش موجود شما بازمیگرداند.
تنظیم یک گردش کار دسکتاپ ( بتا )
هنگامی که در حال ایجاد یک بازی هستید، اغلب آسانتر است که بازی خود را ابتدا روی پلتفرمهای دسکتاپ آزمایش کنید، سپس آن را در دستگاههای تلفن همراه در مراحل بعدی توسعه و آزمایش کنید. برای پشتیبانی از این گردش کار، ما زیرمجموعهای از 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) |
---|---|
احراز هویت | firebase_auth (الزامی) firebase_app |
Cloud Firestore | firebase_firestore firebase_auth firebase_app |
توابع ابری | firebase_functions (الزامی) firebase_app |
فضای ذخیره ابری | firebase_storage (الزامی) firebase_app |
پایگاه داده بیدرنگ | firebase_database (الزامی) firebase_app |
پیکربندی از راه دور | firebase_remote_config (الزامی) firebase_app |
Firebase کتابخانههای دسکتاپ باقیمانده را بهعنوان پیادهسازیهای خرد (غیر کاربردی) برای راحتی در هنگام ساخت برای Windows، macOS و Linux ارائه میکند. بنابراین، برای هدف قرار دادن دسکتاپ نیازی به کامپایل کد مشروط ندارید.
دسکتاپ پایگاه داده بیدرنگ
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 ویندوز |
---|---|
احراز هویت | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
توابع ابری | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
فضای ذخیره ابری | advapi32, ws2_32, crypt32 |
پایگاه داده بیدرنگ | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
پیکربندی از راه دور | 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 Console تنظیم کنید.
- داشبورد استفاده و صورتحساب را در کنسول Firebase نظارت کنید تا تصویری کلی از استفاده از پروژه خود در چندین سرویس Firebase داشته باشید.
- چک لیست راه اندازی Firebase را مرور کنید.
بازی های C++ خود را با SDK های Firebase C++ ما تقویت کنید که یک رابط C++ در بالای SDK های Firebase ارائه می دهند.
به طور کامل از کد ++C خود به Firebase دسترسی داشته باشید، بدون اینکه نیازی به نوشتن کدهای بومی پلتفرم باشید. Firebase SDK همچنین بسیاری از اصطلاحات خاص زبان مورد استفاده توسط Firebase را به یک رابط آشناتر برای توسعه دهندگان C++ ترجمه می کند.
در صفحه بازی های Firebase ما اطلاعات بیشتری در مورد تقویت بازی های خود با Firebase بیابید.
آیا قبلاً Firebase را به پروژه ++C خود اضافه کرده اید؟ مطمئن شوید که از آخرین نسخه Firebase C++ SDK استفاده میکنید.
پیش نیازها
موارد زیر را نصب کنید:
- Xcode 13.3.1 یا بالاتر
- CocoaPods 1.10.0 یا بالاتر
مطمئن شوید که پروژه شما نسخه های پلتفرم زیر یا نسخه های جدیدتر را هدف قرار می دهد:
- iOS 11
- tvOS 12
یک دستگاه فیزیکی راه اندازی کنید یا از شبیه ساز برای اجرای برنامه خود استفاده کنید.
برای پیامرسانی ابری در پلتفرمهای اپل، پیشنیازها در اینجا آمده است:
- یک دستگاه اپل فیزیکی را تنظیم کنید.
- یک کلید تأیید اعتبار Apple Push Notification برای حساب Apple Developer خود دریافت کنید.
- Push Notifications را در Xcode در قسمت App > Capabilities فعال کنید.
با استفاده از حساب Google خود وارد Firebase شوید .
مرحله 2 : یک پروژه Firebase ایجاد کنید
قبل از اینکه بتوانید Firebase را به پروژه C++ خود اضافه کنید، باید یک پروژه Firebase ایجاد کنید تا به پروژه C++ خود متصل شوید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase ، از Understand Firebase Projects دیدن کنید.
Step 3 : Register your app with Firebase
To use Firebase in your Apple app, you need to register your app with your Firebase project. Registering your app is often called "adding" your app to your project.
Go to the Firebase console .
In the center of the project overview page, click the iOS+ icon to launch the setup workflow.
If you've already added an app to your Firebase project, click Add app to display the platform options.
Enter your app's bundle ID in the bundle ID field.
A bundle ID uniquely identifies an application in Apple's ecosystem.
Find your bundle ID: open your project in Xcode, select the top-level app in the project navigator, then select the General tab.
The value of the Bundle Identifier field is the bundle ID (for example,
com.yourcompany.yourproject
).Be aware that the bundle ID value is case-sensitive, and it cannot be changed for this Firebase app after it's registered with your Firebase project.
(Optional) Enter other app information: App nickname and App Store ID .
App nickname : An internal, convenience identifier that is only visible to you in the Firebase console
App Store ID : Used by Firebase Dynamic Links to redirect users to your App Store page and by Google Analytics to import conversion events into Google Ads . If your app doesn't yet have an App Store ID, you can add the ID later in your Project settings .
Click Register app .
Step 4 : Add the Firebase configuration file
Click Download GoogleService-Info.plist to obtain your Firebase Apple platforms config file.
The Firebase config file contains unique, but non-secret identifiers for your project. To learn more about this config file, visit Understand Firebase Projects .
You can download your Firebase config file again at any time.
Make sure the config file name is not appended with additional characters, like
(2)
.
Open your C++ project in an IDE, then drag your config file into the root of your C++ project.
If prompted, select to add the config file to all targets.
You're done with set up tasks in the Firebase console. Continue to Add Firebase C++ SDKs below.
Step 5 : Add Firebase C++ SDKs
The steps in this section are an example of how to add supported Firebase products to your Firebase C++ project.
Download the Firebase C++ SDK , then unzip the SDK somewhere convenient.
The Firebase C++ SDK is not platform-specific, but it does contain platform-specific libraries.
Add Firebase pods from the unzipped SDK.
Create a Podfile if you don't already have one:
cd your-app-directory
pod init
To your Podfile, add the Firebase pods that you want to use in your app.
Analytics enabled
# 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 not enabled
# 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'
Install the pods, then open the
.xcworkspace
file in Xcode.pod install
open your-app.xcworkspace
Add Firebase frameworks from the unzipped SDK.
The easiest way to add these frameworks is usually to drag them from a
Finder
window directly into Xcode's Project Navigator pane (the far-left pane, by default; or click the file icon in the top-left of Xcode).Add the Firebase C++ framework
firebase.framework
, which is required to use any Firebase product.Add the framework for each Firebase product that you want to use. For example, to use Firebase Authentication, add
firebase_auth.framework
.
Back in the Firebase console, in the setup workflow, click Next .
If you added Analytics, run your app to send verification to Firebase that you've successfully integrated Firebase. Otherwise, you can skip this verification step.
Your device logs will display the Firebase verification that initialization is complete. If you ran your app on an emulator that has network access, the Firebase console notifies you that your app connection is complete.
You're all set! Your C++ app is registered and configured to use Firebase products.
Available libraries
Learn more about the C++ Firebase libraries in the reference documentation and in our open-source SDK release on GitHub .
Available libraries for Apple platforms
Note that C++ libraries for Android are listed on the Android version of this setup page .
Each Firebase product has different dependencies. Be sure to add all the listed dependencies for the desired Firebase product to your Podfile and C++ project.
Each Firebase product may only support a selection of Apple OS platforms (iOS, tvOS, etc.). Check which platforms are supported by each library in Learn more about C++ and Firebase .
Firebase product | Frameworks and Pods |
---|---|
AdMob | (required) firebase.framework firebase_admob.framework (required) firebase_analytics.framework pod 'FirebaseAdMob', '10.6.0' (required) pod 'FirebaseAnalytics', '10.6.0' |
Analytics | (required) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.6.0' |
Authentication | (required) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.6.0' |
Cloud Firestore | (required) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.6.0' pod 'FirebaseAuth', '10.6.0' |
Cloud Functions | (required) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.6.0' |
Cloud Messaging | (required) firebase.framework firebase_messaging.framework (recommended) firebase_analytics.framework pod 'FirebaseMessaging', '10.6.0' (recommended) pod 'FirebaseAnalytics', '10.6.0' |
Cloud Storage | (required) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.6.0' |
Dynamic Links | (required) firebase.framework firebase_dynamic_links.framework (recommended) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.6.0' (recommended) pod 'FirebaseAnalytics', '10.6.0' |
Realtime Database | (required) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.6.0' |
Remote Config | (required) firebase.framework firebase_remote_config.framework (recommended) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.6.0' (recommended) pod 'FirebaseAnalytics', '10.6.0' |
Additional information for mobile setup
Method swizzling
On iOS, some application events (such as opening URLs and receiving notifications) require your application delegate to implement specific methods. For example, receiving a notification might require your application delegate to implement application:didReceiveRemoteNotification:
. Because each iOS application has its own app delegate, Firebase uses method swizzling , which allows the replacement of one method with another, to attach its own handlers in addition to any that you might have implemented.
The Dynamic Links and Cloud Messaging libraries need to attach handlers to the application delegate using method swizzling. If you're using any of these Firebase products, at load time, Firebase will identify your AppDelegate
class and swizzle the required methods onto it, chaining a call back to your existing method implementation.
Set up a desktop workflow ( beta )
When you're creating a game, it's often much easier to test your game on desktop platforms first, then deploy and test on mobile devices later in development. To support this workflow, we provide a subset of the Firebase C++ SDKs which can run on Windows, macOS, Linux, and from within the C++ editor.
For desktop workflows, you need to complete the following:
- Configure your C++ project for CMake.
- Create a Firebase project
- Register your app (iOS or Android) with Firebase
- Add a mobile-platform Firebase configuration file
Create a desktop version of the Firebase configuration file:
If you added the Android
google-services.json
file — When you run your app, Firebase locates this mobile file, then automatically generates a desktop Firebase config file (google-services-desktop.json
).If you added the iOS
GoogleService-Info.plist
file — Before you run your app, you need to convert this mobile file to a desktop Firebase config file. To convert the file, run the following command from the same directory as yourGoogleService-Info.plist
file:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
This desktop config file contains the C++ project ID that you entered in the Firebase console setup workflow. Visit Understand Firebase Projects to learn more about config files.
Add Firebase SDKs to your C++ project.
The steps below serve as an example of how to add any supported Firebase product to your C++ project. In this example, we walk through adding Firebase Authentication and Firebase Realtime Database.
Set your
FIREBASE_CPP_SDK_DIR
environment variable to the location of the unzipped Firebase C++ SDK.To your project's
CMakeLists.txt
file, add the following content, including the libraries for the Firebase products that you want to use. For example, to use Firebase Authentication and 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}")
Run your C++ app.
Available libraries (desktop)
The Firebase C++ SDK includes desktop workflow support for a subset of features, enabling certain parts of Firebase to be used in standalone desktop builds on Windows, macOS, and Linux.
Firebase product | Library references (using CMake) |
---|---|
Authentication | firebase_auth (required) firebase_app |
Cloud Firestore | firebase_firestore firebase_auth firebase_app |
Cloud Functions | firebase_functions (required) firebase_app |
Cloud Storage | firebase_storage (required) firebase_app |
Realtime Database | firebase_database (required) firebase_app |
Remote Config | firebase_remote_config (required) firebase_app |
Firebase provides the remaining desktop libraries as stub (non-functional) implementations for convenience when building for Windows, macOS, and Linux. Therefore, you don't need to conditionally compile code to target the desktop.
Realtime Database desktop
The Realtime Database SDK for desktop uses REST to access your database, so you must declare the indexes that you use with Query::OrderByChild()
on desktop or your listeners will fail.
Additional information for desktop setup
Windows libraries
For Windows, library versions are provided based on the following:
- Build platform: 32-bit (x86) vs 64-bit (x64) mode
- Windows runtime environment: Multithreaded / MT vs Multithreaded DLL /MD
- Target: Release vs Debug
Note that the following libraries were tested using Visual Studio 2015 and 2017.
When building C++ desktop apps on Windows, link the following Windows SDK libraries to your project. Consult your compiler documentation for more information.
Firebase C++ Library | Windows SDK library dependencies |
---|---|
احراز هویت | 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 libraries
For macOS (Darwin), library versions are provided for the 64-bit (x86_64) platform. Frameworks are also provided for your convenience.
Note that the macOS libraries have been tested using Xcode 13.3.1.
When building C++ desktop apps on macOS, link the following to your project:
-
pthread
system library -
CoreFoundation
macOS system framework -
Foundation
macOS system framework -
Security
macOS system framework -
GSS
macOS system framework -
Kerberos
macOS system framework -
SystemConfiguration
macOS system framework
Consult your compiler documentation for more information.
Linux libraries
For Linux, library versions are provided for 32-bit (i386) and 64-bit (x86_64) platforms.
Note that the Linux libraries were tested using GCC 4.8.0, GCC 7.2.0, and Clang 5.0 on Ubuntu.
When building C++ desktop apps on Linux, link the pthread
system library to your project. Consult your compiler documentation for more information. If you're building with GCC 5 or later, define -D_GLIBCXX_USE_CXX11_ABI=0
.
مراحل بعدی
Explore sample Firebase apps .
Explore the open source SDK in GitHub .
Prepare to launch your app:
- Set up budget alerts for your project in the Google Cloud Console.
- Monitor the Usage and billing dashboard in the Firebase console to get an overall picture of your project's usage across multiple Firebase services.
- Review the Firebase launch checklist .