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

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

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

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

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


پیش‌نیازها

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

    • 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. (اختیاری) سایر اطلاعات برنامه را وارد کنید: نام مستعار برنامه و شناسه App Store.

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

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

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

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

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

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

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

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

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

    کیت توسعه نرم‌افزار 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 را از کیت توسعه نرم‌افزار از حالت فشرده خارج‌شده اضافه کنید.

    ساده‌ترین راه برای افزودن این چارچوب‌ها معمولاً کشیدن آن‌ها از پنجره 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 به شما اطلاع می‌دهد که اتصال برنامه‌تان کامل شده است.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

روش تغییر پیاده‌سازی

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

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

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

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

    • اگر فایل GoogleService-Info.plist iOS را اضافه کرده‌اید — قبل‌از اجرای برنامه‌تان، باید این فایل تلفن همراه را به فایل پیکربندی 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++ SDK شامل پشتیبانی از گردش کار رایانه برای زیرمجموعه‌ای از ویژگی‌ها است که امکان استفاده از بخش‌های خاصی از 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 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 را تعریف کنید.

مراحل بعدی