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

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

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

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

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


پیش‌نیازها

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

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

    • آی‌او‌اس ۱۳
    • تی‌وی‌او‌اس ۱۳
  • یک دستگاه فیزیکی راه‌اندازی کنید یا از شبیه‌ساز برای اجرای برنامه خود استفاده کنید.

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

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

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

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

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

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

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

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

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

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

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

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

  1. برای دریافت فایل پیکربندی پلتفرم‌های اپل فایربیس خود، روی «دانلود GoogleService-Info.plist» کلیک کنید.

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

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

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

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

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

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

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

  2. غلاف‌های Firebase را از SDK از حالت فشرده خارج شده اضافه کنید.

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

    ساده‌ترین راه برای اضافه کردن این فریم‌ورک‌ها معمولاً کشیدن آنها از پنجره‌ی Finder مستقیماً به پنل Project Navigator در Xcode (به‌طور پیش‌فرض پنل سمت چپ؛ یا کلیک روی آیکون فایل در بالا سمت چپ 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 برای اندروید در نسخه اندروید این صفحه تنظیمات فهرست شده‌اند.

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

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

محصول فایربیس چارچوب‌ها و پادها
AdMob (الزامی) firebase.framework
firebase_admob.framework
(الزامی) firebase_analytics.framework

pod 'FirebaseAdMob', '12.4.0'
(الزامی) pod 'FirebaseAnalytics', '12.4.0'
Analytics (الزامی) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

pod 'FirebaseStorage', '12.4.0'
Dynamic Links (الزامی) firebase.framework
firebase_dynamic_links.framework
(توصیه می‌شود) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.4.0'
(توصیه شده) pod 'FirebaseAnalytics', '12.4.0'
Realtime Database (الزامی) firebase.framework
firebase_database.framework

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

pod 'FirebaseRemoteConfig', '12.4.0'
(توصیه شده) pod 'FirebaseAnalytics', '12.4.0'

اطلاعات تکمیلی برای تنظیمات موبایل

روش سوویزلینگ

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

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

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

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

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

    1. پروژه C++ خود را برای CMake پیکربندی کنید.
    2. ایجاد یک پروژه فایربیس
    3. برنامه خود (iOS یا Android) را با Firebase ثبت کنید
    4. یک فایل پیکربندی Firebase برای پلتفرم موبایل اضافه کنید
  2. یک نسخه دسکتاپ از فایل پیکربندی Firebase ایجاد کنید:

    • اگر فایل 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 خود را روی محل SDK C++ Firebase از حالت فشرده خارج شده تنظیم کنید.

    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 خود را اجرا کنید.

کتابخانه‌های موجود (دسکتاپ)

کیت توسعه نرم‌افزاری C++ 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

فایربیس کتابخانه‌های دسکتاپ باقی‌مانده را به عنوان پیاده‌سازی‌های stub (غیرعملیاتی) برای راحتی هنگام ساخت برای ویندوز، macOS و لینوکس ارائه می‌دهد. بنابراین، نیازی به کامپایل مشروط کد برای هدف قرار دادن دسکتاپ ندارید.

دسکتاپ Realtime Database

کیت توسعه نرم‌افزار (SDK) Realtime Database برای دسکتاپ از REST برای دسترسی به پایگاه داده شما استفاده می‌کند، بنابراین باید ایندکس‌هایی را که با Query::OrderByChild() در دسکتاپ استفاده می‌کنید، تعریف کنید، در غیر این صورت شنونده‌های شما با شکست مواجه خواهند شد.

اطلاعات تکمیلی برای تنظیمات دسکتاپ

کتابخانه‌های ویندوز

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

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

توجه داشته باشید که کتابخانه‌های زیر با استفاده از ویژوال استودیو ۲۰۱۵ و ۲۰۱۷ آزمایش شده‌اند.

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

کتابخانه فایربیس سی پلاس پلاس وابستگی‌های کتابخانه 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 (داروین)، نسخه‌های کتابخانه برای پلتفرم ۶۴ بیتی (x86_64) ارائه شده است. چارچوب‌هایی نیز برای راحتی شما ارائه شده است.

توجه داشته باشید که کتابخانه‌های macOS با استفاده از Xcode 16.2 آزمایش شده‌اند.

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

  • کتابخانه سیستم pthread
  • چارچوب سیستم macOS CoreFoundation
  • چارچوب سیستم عامل macOS Foundation
  • چارچوب سیستم macOS Security
  • چارچوب سیستم macOS GSS
  • چارچوب سیستم عامل macOS Kerberos
  • چارچوب سیستم macOS SystemConfiguration

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

کتابخانه‌های لینوکس

برای لینوکس، نسخه‌های کتابخانه برای پلتفرم‌های ۳۲ بیتی (i386) و ۶۴ بیتی (x86_64) ارائه شده‌اند.

توجه داشته باشید که کتابخانه‌های لینوکس با استفاده از GCC 4.8.0، GCC 7.2.0 و Clang 5.0 روی اوبونتو آزمایش شده‌اند.

هنگام ساخت برنامه‌های دسکتاپ ++C در لینوکس، کتابخانه سیستم pthread را به پروژه خود پیوند دهید. برای اطلاعات بیشتر به مستندات کامپایلر خود مراجعه کنید. اگر با GCC 5 یا بالاتر برنامه می‌سازید، -D_GLIBCXX_USE_CXX11_ABI=0 را تعریف کنید.

مراحل بعدی