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

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

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

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

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


پیش‌نیازها

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

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

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

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

  2. از Swift Package Manager برای نصب و مدیریت وابستگی‌های کیت توسعه نرم‌افزار پلاتفرم‌های Firebase Apple استفاده کنید.

    1. در Xcode، درحالی‌که پروژه برنامه‌تان باز است، به File > Add Package Dependencies (فایل > افزودن وابستگی‌های بسته) بروید.

    2. وقتی خواسته شد، مخزن کیت توسعه نرم‌افزار Firebase برای پلاتفرم‌های Apple را اضافه کنید:

      https://github.com/firebase/firebase-ios-sdk.git

    3. برای قانون وابستگی، نسخه دقیق را انتخاب کنید و 13.1.1 را وارد کنید.

    4. کتابخانه‌های Firebase را که می‌خواهید در برنامه‌تان استفاده کنید (برای مثال، FirebaseAuth و FirebaseDatabase) انتخاب کنید. اگر Google Analytics در پروژه Firebase شما فعال است، حتماً FirebaseAnalytics را اضافه کنید.

    وقتی تمام شد، Xcode به‌طور خودکار شروع به حل و بارگیری وابستگی‌های شما در پس‌زمینه می‌کند.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

محصول Firebase کتابخانه‌های XCFrameworks و Swift Package Manager
Analytics (الزامی) firebase.xcframework
firebase_analytics.xcframework

FirebaseAnalytics (13.1.1)
App Check (الزامی) firebase.xcframework
firebase_app_check.xcframework

FirebaseAppCheck (13.1.1)
Authentication (الزامی) firebase.xcframework
firebase_auth.xcframework

FirebaseAuth (13.1.1)
Cloud Firestore (الزامی) firebase.xcframework
firebase_firestore.xcframework
firebase_auth.xcframework

FirebaseFirestore (13.1.1)
FirebaseAuth (13.1.1)
Cloud Functions (الزامی) firebase.xcframework
firebase_functions.xcframework

FirebaseFunctions (13.1.1)
Cloud Messaging (الزامی) firebase.xcframework
firebase_messaging.xcframework
(توصیه‌شده) firebase_analytics.xcframework

FirebaseMessaging (13.1.1)
(توصیه‌شده) FirebaseAnalytics (13.1.1)
Cloud Storage (الزامی) firebase.xcframework
firebase_storage.xcframework

FirebaseStorage (13.1.1)
Realtime Database (الزامی) firebase.xcframework
firebase_database.xcframework

FirebaseDatabase (13.1.1)
Remote Config (الزامی) firebase.xcframework
firebase_remote_config.xcframework
(توصیه‌شده) firebase_analytics.xcframework

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

FirebaseDynamicLinks (13.1.1)
(توصیه‌شده) FirebaseAnalytics (13.1.1)

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

ادغام بدون استفاده از Swift Package Manager

اگر نمی‌خواهید از Swift Package Manager برای مدیریت وابستگی‌های کیت توسعه نرم‌افزار پلاتفرم‌های Apple در Firebase استفاده کنید، برای گزینه‌های ادغام جایگزین، به ادغام بدون استفاده از Swift Package Manager در راهنمای راه‌اندازی پلاتفرم‌های Apple مراجعه کنید.

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

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

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

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

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

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

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

توجه داشته باشید که کتابخانه‌های زیر بااستفاده از Visual Studio 2015 و 2017 آزمایش شده‌اند.

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

کتابخانه 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
  • Foundation چارچوب سیستم macOS
  • Security چارچوب سیستم macOS
  • GSS چارچوب سیستم macOS
  • Kerberos چارچوب سیستم macOS
  • SystemConfiguration چارچوب سیستم macOS

برای اطلاعات بیشتر، به مستندات کامپایلر خود مراجعه کنید.

کتابخانه‌های 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 را تعریف کنید.

مراحل بعدی