Firebase را به پروژه C++ خود اضافه کنید

بازی های 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.12.0 یا بالاتر
  • مطمئن شوید که پروژه شما نسخه های پلتفرم زیر یا نسخه های جدیدتر را هدف قرار می دهد:

    • iOS 13
    • tvOS 13
  • یک دستگاه فیزیکی راه اندازی کنید یا از شبیه ساز برای اجرای برنامه خود استفاده کنید.

  • با استفاده از حساب Google خود وارد Firebase شوید .

مرحله 2 : یک پروژه Firebase ایجاد کنید

قبل از اینکه بتوانید Firebase را به پروژه C++ خود اضافه کنید، باید یک پروژه Firebase ایجاد کنید تا به پروژه C++ خود متصل شوید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase، از Understand Firebase Projects دیدن کنید.

مرحله 3 : برنامه خود را با Firebase ثبت کنید

برای استفاده از Firebase در برنامه Apple خود، باید برنامه خود را در پروژه Firebase خود ثبت کنید. ثبت برنامه شما اغلب "افزودن" برنامه شما به پروژه شما نامیده می شود.

  1. به کنسول Firebase بروید.

  2. در مرکز صفحه نمای کلی پروژه، روی نماد iOS+ کلیک کنید تا گردش کار راه اندازی شود.

    اگر قبلاً برنامه‌ای را به پروژه Firebase خود اضافه کرده‌اید، روی افزودن برنامه کلیک کنید تا گزینه‌های پلتفرم نمایش داده شوند.

  3. شناسه بسته نرم افزاری خود را در قسمت شناسه بسته وارد کنید.

  4. (اختیاری) اطلاعات دیگر برنامه را وارد کنید: نام مستعار برنامه و شناسه فروشگاه App .

  5. روی ثبت برنامه کلیک کنید.

مرحله 4 : فایل پیکربندی Firebase را اضافه کنید

  1. روی Download GoogleService-Info.plist کلیک کنید تا فایل پیکربندی پلتفرم های Apple Firebase خود را دریافت کنید.

  2. پروژه ++C خود را در یک IDE باز کنید، سپس فایل پیکربندی خود را به ریشه پروژه C++ خود بکشید.

  3. اگر از شما خواسته شد، انتخاب کنید تا فایل پیکربندی را به همه اهداف اضافه کنید.

کار راه‌اندازی در کنسول Firebase تمام شده است. افزودن SDK های Firebase C++ را در زیر ادامه دهید.

مرحله 5 : SDK های Firebase C++ را اضافه کنید

مراحل این بخش نمونه ای از نحوه افزودن محصولات Firebase پشتیبانی شده به پروژه Firebase C++ است.

  1. Firebase C++ SDK را دانلود کنید، سپس SDK را در جایی مناسب از حالت فشرده خارج کنید.

    Firebase C++ SDK مختص پلتفرم نیست، اما حاوی کتابخانه های مخصوص پلتفرم است.

  2. پادهای Firebase را از SDK خارج‌شده اضافه کنید.

    1. اگر قبلاً یک پادفایل ندارید ایجاد کنید:

      cd your-app-directory
      pod init

    2. به 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'
    3. پادها را نصب کنید، سپس فایل .xcworkspace را در Xcode باز کنید.

      pod install
      open your-app.xcworkspace

  3. فریم‌ورک‌های Firebase را از SDK خارج‌شده اضافه کنید.

    ساده‌ترین راه برای افزودن این فریم‌ورک‌ها معمولاً کشیدن آن‌ها از پنجره Finder است که مستقیماً به پنجره Xcode's Project Navigator (به طور پیش‌فرض پنجره سمت چپ، یا روی نماد فایل در سمت چپ بالای Xcode کلیک کنید).

    1. چارچوب Firebase C++ firebase.framework را اضافه کنید، که برای استفاده از هر محصول Firebase لازم است.

    2. برای هر محصول Firebase که می‌خواهید استفاده کنید، چارچوبی اضافه کنید. به عنوان مثال، برای استفاده از Firebase Authentication ، firebase_auth.framework را اضافه کنید.

  4. در کنسول Firebase ، در گردش کار راه اندازی، روی Next کلیک کنید.

  5. اگر 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', '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'

اطلاعات اضافی برای راه اندازی تلفن همراه

روش swizzling

در iOS، برخی رویدادهای برنامه (مانند باز کردن URL ها و دریافت اعلان ها) به نماینده برنامه شما نیاز دارند تا روش های خاصی را پیاده سازی کنند. برای مثال، دریافت یک اعلان ممکن است به نماینده برنامه شما نیاز داشته باشد که application:didReceiveRemoteNotification: . از آنجا که هر برنامه iOS نماینده برنامه مخصوص به خود را دارد، Firebase از روش Swizzling استفاده می کند که امکان جایگزینی یک روش با روش دیگر را فراهم می کند تا کنترل کننده های خود را علاوه بر هر چیزی که ممکن است پیاده سازی کرده باشید، متصل کند.

کتابخانه‌های Dynamic Links و Cloud Messaging باید با استفاده از روش Swizzling، کنترل‌کننده‌ها را به نماینده برنامه متصل کنند. اگر از هر یک از این محصولات Firebase استفاده می‌کنید، در زمان بارگذاری، Firebase کلاس AppDelegate شما را شناسایی می‌کند و روش‌های مورد نیاز را روی آن جابجا می‌کند و یک فراخوانی را به پیاده‌سازی روش موجود شما بازمی‌گرداند.

تنظیم یک گردش کار دسکتاپ ( بتا )

هنگامی که در حال ایجاد یک بازی هستید، اغلب آسان‌تر است که بازی خود را ابتدا روی پلتفرم‌های دسکتاپ آزمایش کنید، سپس آن را در دستگاه‌های تلفن همراه در مراحل بعدی توسعه و آزمایش کنید. برای پشتیبانی از این گردش کار، ما زیرمجموعه‌ای از SDKهای Firebase C++ را ارائه می‌کنیم که می‌توانند روی Windows، macOS، Linux و از داخل ویرایشگر C++ اجرا شوند.

  1. برای گردش کار دسکتاپ، باید موارد زیر را تکمیل کنید:

    1. پروژه C++ خود را برای CMake پیکربندی کنید.
    2. یک پروژه Firebase ایجاد کنید
    3. برنامه خود (iOS یا Android) را با Firebase ثبت کنید
    4. یک فایل پیکربندی Firebase برای پلتفرم موبایل اضافه کنید
  2. یک نسخه دسکتاپ از فایل پیکربندی 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 دیدن کنید.

  3. SDK های Firebase را به پروژه C++ خود اضافه کنید.

    مراحل زیر به عنوان نمونه ای از نحوه افزودن هر محصول Firebase پشتیبانی شده به پروژه ++C خود است. در این مثال، افزودن Firebase Authentication و Firebase Realtime Database طی می کنیم.

    1. متغیر محیطی FIREBASE_CPP_SDK_DIR خود را روی مکان زیپ نشده Firebase C++ SDK تنظیم کنید.

    2. به فایل 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}")
      
  4. برنامه ++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 را تعریف کنید.

مراحل بعدی