Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

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

بازی های C ++ خود را با SDK های Firebase C ++ ما که رابط C ++ در بالای Firebase برای iOS و Android ارائه می دهند ، تقویت کنید.

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

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

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

پیش نیازها

  • ویرایشگر یا IDE مورد نظر خود را نصب کنید ، مانند Android Studio ، IntelliJ یا VS Code.

  • Android SDK را دریافت کنید .

  • اطمینان حاصل کنید که پروژه شما از این شرایط برخوردار است:

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

    • شبیه سازها باید از یک تصویر شبیه ساز با Google Play استفاده کنند.

    • برای برخی از کتابخانه های C ++ ، سرویس های Google Play در دستگاه مشتری مورد نیاز است. لیست موجود در این صفحه را مرور کنید .

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

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

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

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

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

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

  2. در مرکز صفحه نمای کلی پروژه ، روی نماد Android ( ) یا افزودن برنامه کلیک کنید تا گردش کار راه اندازی شود.

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

  4. (اختیاری) سایر اطلاعات برنامه را وارد کنید: نام مستعار برنامه و گواهی امضای اشکال زدایی SHA-1 .

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

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

  1. برای دریافت فایل پیکربندی Firebase Android ، روی بارگیری google-services.json کلیک کنید.

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

  3. (فقط Gradle ساخته می شود) برای فعال کردن سرویس های Firebase در پروژه C ++ خود ، افزونه google-services را به پرونده build.gradle سطح بالای خود build.gradle کنید.

    1. برای افزودن افزونه Google Services Gradle قوانینی اضافه کنید. بررسی کنید که مخزن Maven گوگل را نیز داشته باشید.

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.3.4'  // Google Services plugin
            implementation 'com.google.android.gms:17.5.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. پلاگین Google Services Gradle را اعمال کنید:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. شما با کارهای تنظیم شده در کنسول Firebase به پایان رسید. به افزودن SDK های Firebase C ++ در زیر ادامه دهید.

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

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

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

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

  2. مکان SDK فشرده gradle.properties پرونده gradle.properties پروژه خود gradle.properties کنید:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. موارد زیر را به پرونده settings.gradle پروژه خود اضافه کنید:

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  4. موارد زیر را به پرونده Gradle ماژول خود (سطح برنامه) اضافه کنید (معمولاً app/build.gradle ):

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
    }
    
  5. به پرونده CMakeLists.txt پروژه خود ، محتوای زیر را اضافه کنید ، از جمله کتابخانه های محصولات Firebase که می خواهید در برنامه خود استفاده کنید.

    تجزیه و تحلیل فعال است

    # 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app)
    target_link_libraries(${target_name} "${firebase_libs}")
    

    تجزیه و تحلیل فعال نیست

    # 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}")
    
  6. برنامه خود را همگام سازی کنید تا مطمئن شوید همه وابستگی ها نسخه های لازم را دارند.

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

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

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

کتابخانه های موجود

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

کتابخانه های موجود برای Android (با استفاده از CMake)

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

محصول Firebase منابع کتابخانه (با استفاده از CMake)
AdMob firebase_admob
(مورد نیاز) firebase_analytics
(لازم) firebase_app
تجزیه و تحلیل firebase_analytics
(لازم) firebase_app
احراز هویت firebase_auth
(لازم) firebase_app
Cloud Firestore (آلفا) firebase_firestore
(لازم) firebase_app
(الزامی) firebase_auth
عملکردهای ابر firebase_functions
(لازم) firebase_app
پیام رسانی ابری firebase_messaging
(توصیه می شود) firebase_analytics
(الزامی) firebase_app
فضای ذخیره ابری firebase_storage
(لازم) firebase_app
پیوندهای پویا firebase_dynamic_links
(توصیه می شود) firebase_analytics
(لازم) firebase_app
پایگاه داده بیدرنگ firebase_database
(لازم) firebase_app
پیکربندی از راه دور firebase_remote_config
(توصیه می شود) firebase_analytics
(لازم) firebase_app

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

گزارش های خرابی NDK را دریافت کنید

Firebase Crashlytics از گزارش خرابی برنامه ها با استفاده از کتابخانه های بومی Android پشتیبانی می کند. برای کسب اطلاعات بیشتر ، به گزارشهای خرابی Android NDK مراجعه کنید .

سیستم های ساخت سفارشی

Firebase اسکریپت generate_xml_from_google_services_json.py برای تبدیل google-services.json به منابع .xml فراهم می کند که می توانید در پروژه خود بگنجانید. این اسکریپت همان تحولی را اعمال می کند که افزونه Gradle خدمات Google Play هنگام ساخت برنامه های Android انجام می دهد.

اگر با استفاده از Gradle ساخت نمی کنید (مثلاً از ndk-build ، makefiles ، Visual Studio و غیره استفاده می کنید) ، می توانید از این اسکریپت برای تولید خودکار منابع رشته Android استفاده کنید

ProGuard

بسیاری از سیستم های ساخت اندروید برای کوچک سازی اندازه برنامه ها و محافظت از کد منبع جاوا از ProGuard برای ساخت در حالت Release استفاده می کنند.

اگر از ProGuard استفاده می کنید ، باید پرونده ها را در libs/android/*.pro مربوط به کتابخانه های Firebase C ++ که در پیکربندی ProGuard خود استفاده می کنید ، اضافه کنید.

به عنوان مثال ، با Gradle ، اگر از Google Analytics استفاده می کنید ، فایل build.gradle شما به build.gradle صورت خواهد بود:

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

نیاز به خدمات Google Play

بیشتر کتابخانه های Firebase C ++ به خدمات Google Play نیاز دارند که در دستگاه Android مشتری باشند. اگر یک کتابخانه Firebase C ++ kInitResultFailedMissingDependency مقداردهی اولیه را kInitResultFailedMissingDependency ، این بدان معناست که سرویس های Google Play در دستگاه سرویس گیرنده در دسترس نیست (به این معنی که نیاز به به روزرسانی ، فعال سازی مجدد ، اصلاح مجوزها و غیره دارد). تا زمانی که وضعیت دستگاه مشتری اصلاح نشود ، نمی توان از کتابخانه Firebase استفاده کرد.

با استفاده از توابع موجود در google_play_services/availability.h می توانید دلیل غیرقابل دسترسی بودن سرویس های Google Play در دستگاه مشتری را پیدا کنید (و سعی کنید آن را برطرف کنید).

جدول زیر نشان می دهد که آیا خدمات Google Play در دستگاه مشتری برای هر محصول Firebase پشتیبانی شده مورد نیاز است.

کتابخانه Firebase C ++ خدمات Google Play در دستگاه مشتری لازم است؟
AdMob لازم نیست (معمولاً)
تجزیه و تحلیل لازم نیست
احراز هویت ضروری
Cloud Firestore ضروری
عملکردهای ابر ضروری
پیام رسانی ابری ضروری
فضای ذخیره ابری ضروری
پیوندهای پویا ضروری
پایگاه داده بیدرنگ ضروری
پیکربندی از راه دور ضروری

خدمات AdMob و Google Play

اکثر نسخه های Google Mobile Ads SDK برای Android بدون سرویس های Google Play در دستگاه مشتری می توانند به درستی کار کنند. با این حال ، اگر از com.google.android.gms:play-services-ads-lite وابستگی استفاده می کنید ، به جای استاندارد com.google.firebase:firebase-ads وابستگی com.google.firebase:firebase-ads ذکر شده در بالا ، خدمات Google Play لازم است .

مقداردهی اولیه AdMob فقط kInitResultFailedMissingDependency برمی گرداند در kInitResultFailedMissingDependency که هر دو مورد درست باشند:

  • خدمات Google Play در دستگاه مشتری در دسترس نیست.
  • شما از com.google.android.gms:play-services-ads-lite .

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

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

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

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

    • اگر پرونده google-services.json Android را اضافه کرده اید - هنگام اجرای برنامه ، 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 وارد کرده اید. برای کسب اطلاعات بیشتر در مورد پرونده های پیکربندی ، از Undead Firebase Projects دیدن کنید.

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

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

    1. متغیر محیط FIREBASE_CPP_SDK_DIR خود را بر روی محل SDK 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 در ساخت مستقل دسک تاپ در ویندوز ، macOS و Linux را می دهد.

محصول Firebase منابع کتابخانه (با استفاده از CMake)
احراز هویت firebase_auth
(لازم) firebase_app
Cloud Firestore (آلفا) firebase_firestore
firebase_auth
firebase_app
عملکردهای ابر firebase_functions
(لازم) firebase_app
فضای ذخیره ابری firebase_storage
(لازم) firebase_app
پایگاه داده بیدرنگ firebase_database
(الزامی) firebase_app
پیکربندی از راه دور firebase_remote_config
(لازم) firebase_app

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

دسکتاپ پایگاه داده بیدرنگ

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

اطلاعات اضافی برای راه اندازی دسک تاپ

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

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

  • سکوی ساخت: حالت 32 بیتی (x86) در مقابل 64 بیتی (x64)
  • محیط زمان اجرا برای Windows: Multithreaded / MT vs Multithreaded DLL / MD
  • هدف: انتشار در مقابل اشکال زدایی

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

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

کتابخانه Firebase C ++ وابستگی های کتابخانه SDK ویندوز
احراز هویت advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
عملکردهای ابر advapi32, ws2_32, crypt32, rpcrt4, ole32
فضای ذخیره ابری advapi32, ws2_32, crypt32
پایگاه داده بیدرنگ advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
پیکربندی از راه دور advapi32, ws2_32, crypt32, rpcrt4, ole32

کتابخانه های macOS

برای macOS (داروین) ، نسخه های کتابخانه برای سیستم عامل 64 بیتی (x86_64) ارائه شده است. چارچوب هایی نیز برای راحتی شما ارائه شده است.

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

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

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

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

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

برای لینوکس ، نسخه های کتابخانه برای سیستم عامل های 32 بیتی (i386) و 64 بیتی (x86_64) ارائه شده است.

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

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

مراحل بعدی