افزودن Firebase به پروژه C++‎

با کیت‌های توسعه نرم‌افزار Firebase C++‎ ما که یک میانای C++‎ در بالای کیت‌های توسعه نرم‌افزار Firebase ارائه می‌دهند، بازی‌های C++‎ خود را تقویت کنید.

بدون نیاز به نوشتن کد بومی پلاتفرم، به‌طور کامل از کد C++‎ خود به Firebase دسترسی پیدا کنید. «کیت توسعه نرم‌افزار Firebase» همچنین بسیاری از اصطلاحات خاص زبان را که Firebase استفاده می‌کند به واسطی که برای توسعه‌دهندگان C++ آشناتر است ترجمه می‌کند.

در صفحه بازی‌های Firebase اطلاعات بیشتری درباره تقویت بازی‌هایتان با Firebase کسب کنید.

قبلاً Firebase را به پروژه C++‎ خود اضافه کرده‌اید؟ مطمئن شوید که از جدیدترین نسخه Firebase C++ کیت توسعه نرم‌افزار استفاده می‌کنید.


پیش‌نیازها

  • موارد زیر را نصب کنید:

    • ‫Xcode نسخه ۲۶.۲ یا بالاتر
    • ‫CocoaPods نسخه ۱.۱۲.۰ یا بالاتر
  • مطمئن شوید که پروژه شما نسخه‌های پلاتفرم زیر یا جدیدتر را هدف قرار می‌دهد:

    • ‫iOS 15
    • ‫tvOS 15
  • برای اجرای برنامه، دستگاه فیزیکی راه‌اندازی کنید یا از شبیه‌ساز استفاده کنید.

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

مرحله ۲: ایجاد پروژه Firebase

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

مرحله ۳: ثبت برنامه در Firebase

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

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

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

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

  3. شناسه دسته‌ای برنامه‌تان را در فیلد شناسه دسته وارد کنید.

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

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

مرحله ۴: افزودن فایل پیکربندی Firebase

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

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

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

تکالیف راه‌اندازی در کنسول Firebase را انجام داده‌اید. در زیر به افزودن کیت‌های توسعه نرم‌افزار Firebase C++‎ ادامه دهید.

مرحله ۵: افزودن کیت‌های توسعه نرم‌افزار Firebase C++‎

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

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

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

  2. پادهای Firebase را از کیت توسعه نرم‌افزار ازحالت فشرده خارج‌شده اضافه کنید.

    1. اگر ازقبل Podfile ندارید، آن را ایجاد کنید:

      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پنجره‌ای مستقیماً به قاب Project Navigator در Xcode بکشید (قاب سمت چپ، به‌طور پیش‌فرض؛ یا روی نماد فایل در گوشه بالا سمت چپ Xcode کلیک کنید).

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

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

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

  5. اگر Analytics را اضافه کردید، برنامه‌تان را اجرا کنید تا درستی‌سنجی به Firebase ارسال شود و به Firebase اطلاع داده شود که Firebase را باموفقیت یکپارچه کرده‌اید. درغیراین‌صورت، می‌توانید از این مرحله درستی‌سنجی رد شوید.

    گزارش‌های دستگاهتان درستی‌سنجی Firebase را نشان می‌دهد که مقداردهی اولیه کامل است. اگر برنامه‌تان را در شبیه‌سازی که دسترسی شبکه دارد اجرا کنید، Firebase کنسول به شما اطلاع می‌دهد که اتصال برنامه کامل شده است.

همه چیز آماده است! برنامه C++ شما ثبت و پیکربندی شده است تا از محصولات Firebase استفاده کند.

کتابخانه‌های دردسترس

درباره کتابخانه‌های C++ Firebase در اسناد مرجع و در نسخه SDK متن‌باز ما در GitHub بیشتر بدانید.

کتابخانه‌های دردسترس برای پلاتفرم‌های Apple

توجه داشته باشید که کتابخانه‌های C++ برای Android در نسخه Android این صفحه راه‌اندازی فهرست شده‌اند.

هر محصول Firebase وابستگی‌های متفاوتی دارد. حتماً همه وابستگی‌های فهرست‌شده برای محصول Firebase موردنظر را به Podfile و پروژه C++ خود اضافه کنید.

هر محصول Firebase ممکن است فقط از مجموعه‌ای از پلاتفرم‌های سیستم‌عامل Apple (‏iOS،‏ tvOS، و غیره) پشتیبانی کند. بررسی کنید هر کتابخانه از کدام پلاتفرم‌ها پشتیبانی می‌کند در درباره C++ و Firebase بیشتر بدانید.

محصول Firebase چارچوب‌ها و Pods
Analytics (الزامی) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.19.0'
App Check (الزامی) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.19.0'
Authentication (الزامی) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.19.0'
Cloud Firestore (الزامی) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.19.0'
pod 'FirebaseAuth', '12.19.0'
Cloud Functions (الزامی) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.19.0'
Cloud Messaging (الزامی) firebase.framework
firebase_messaging.framework
(توصیه‌شده) firebase_analytics.framework

pod 'FirebaseMessaging', '12.19.0'
(توصیه‌شده) pod 'FirebaseAnalytics', '12.19.0'
Cloud Storage (الزامی) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.19.0'
Realtime Database (الزامی) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.19.0'
Remote Config (الزامی) firebase.framework
firebase_remote_config.framework
(توصیه‌شده) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.19.0'
(توصیه‌شده) pod 'FirebaseAnalytics', '12.19.0'
کتابخانه‌های منسوخ یا پشتیبانی‌نشده
Dynamic Links (الزامی) firebase.framework
firebase_dynamic_links.framework
(توصیه‌شده) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.19.0'
(توصیه‌شده) pod 'FirebaseAnalytics', '12.19.0'

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

روش swizzling

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

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

راه‌اندازی گردش کار میز کار (نسخه بتا)

هنگام ساختن بازی، اغلب بسیار آسان‌تر است که ابتدا بازی خود را در پلاتفرم‌های رایانه آزمایش کنید، سپس آن را در دستگاه‌های همراه پیاده‌سازی و آزمایش کنید. برای پشتیبانی از این گردش کار، زیرمجموعه‌ای از کیت‌های توسعه نرم‌افزار 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 وارد کرده‌اید. برای کسب اطلاعات بیشتر درباره فایل‌های پیکربندی، به آشنایی با پروژه‌های Firebase مراجعه کنید.

  3. کیت‌های توسعه نرم‌افزار Firebase را به پروژه C++‎ خود اضافه کنید.

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

    1. متغیر محیط FIREBASE_CPP_SDK_DIR را روی مکان کیت توسعه نرم‌افزار Firebase C++ زیپ‌نشده تنظیم کنید.

    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++ شامل پشتیبانی از گردش کار رایانه برای زیرمجموعه‌ای از ویژگی‌ها است که امکان استفاده از بخش‌های خاصی از Firebase را در ساخت‌های رایانه‌ای مستقل در Windows،‏ macOS، و Linux فراهم می‌کند.

محصول 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 برای رایانه از REST برای دسترسی به پایگاه داده شما استفاده می‌کند، بنابراین باید شاخص‌هایی را که با Query::OrderByChild() در رایانه استفاده می‌کنید اعلام کنید، درغیراین‌صورت شنوندگان شما با خطا مواجه خواهند شد.

اطلاعات تکمیلی برای راه‌اندازی رایانه

کتابخانه‌های Windows

برای Windows، نسخه‌های کتابخانه براساس موارد زیر ارائه می‌شود:

  • پلاتفرم ساخت: حالت ۳۲ بیتی (x86) دربرابر حالت ۶۴ بیتی (x64)
  • محیط زمان اجرای Windows: چندریسمانی / MT دربرابر چندریسمانی DLL /MD
  • هدف: نسخه پخش دربرابر اشکال‌زدایی

توجه داشته باشید که کتابخانه‌های زیر بااستفاده از 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 26.2 آزمایش شده‌اند.

هنگام ساختن برنامه‌های رایانه‌ای C++ در macOS، موارد زیر را به پروژه‌تان پیوند دهید:

  • ‫pthread کتابخانه سیستم
  • چارچوب سیستم macOS CoreFoundation
  • چارچوب سیستم macOS Foundation
  • چارچوب سیستم macOS Security
  • چارچوب سیستم macOS GSS
  • چارچوب سیستم macOS Kerberos
  • چارچوب سیستم 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 را تعریف کنید.

مراحل بعدی