अपने C++ प्रोजेक्ट में Firebase जोड़ें

Firebase C++ SDK टूल की मदद से, अपने C++ गेम को बेहतर बनाएं. ये टूल, Firebase SDK टूल के साथ C++ इंटरफ़ेस उपलब्ध कराते हैं.

अपने C++ कोड से Firebase को पूरी तरह से ऐक्सेस करें. इसके लिए, आपको प्लैटफ़ॉर्म के लिए कोई नेटिव कोड लिखने की ज़रूरत नहीं है. Firebase SDK टूल, भाषा के हिसाब से कई तरह के идиओम का अनुवाद भी करता है. Firebase इन भाषाओं का इस्तेमाल करता है. ये भाषाएं, C++ डेवलपर के लिए ज़्यादा जाना-पहचाना इंटरफ़ेस होती हैं.

Firebase की मदद से अपने गेम को बेहतर बनाने के बारे में ज़्यादा जानने के लिए, हमारे Firebase गेम पेज पर जाएं.

क्या आपने अपने C++ प्रोजेक्ट में पहले से ही Firebase जोड़ लिया है? पक्का करें कि आपने Firebase C++ SDK टूल का सबसे नया वर्शन इस्तेमाल किया हो.


ज़रूरी शर्तें

  • अपनी पसंद का एडिटर या आईडीई इंस्टॉल करें. जैसे, Android Studio, IntelliJ या VS Code.

  • Android SDK टूल पाएं.

  • पक्का करें कि आपका प्रोजेक्ट इन ज़रूरी शर्तों को पूरा करता हो:

  • अपना ऐप्लिकेशन चलाने के लिए, कोई फ़िज़िकल डिवाइस सेट अप करें या किसी एमुलेटर का इस्तेमाल करें.

    • एम्युलेटर को Google Play के साथ एम्युलेटर इमेज का इस्तेमाल करना होगा.

    • कुछ C++ लाइब्रेरी के लिए, क्लाइंट डिवाइस पर Google Play services ज़रूरी है. इस पेज पर लिस्ट देखें.

  • अपने Google खाते का इस्तेमाल करके, Firebase में साइन इन करें.

दूसरा चरण: Firebase प्रोजेक्ट बनाना

C++ प्रोजेक्ट में Firebase जोड़ने से पहले, आपको C++ प्रोजेक्ट से कनेक्ट करने के लिए Firebase प्रोजेक्ट बनाना होगा. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी पर जाएं.

  1. Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें.

    • मौजूदा Google Cloud प्रोजेक्ट में Firebase संसाधन जोड़ने के लिए, प्रोजेक्ट का नाम डालें या ड्रॉपडाउन मेन्यू से चुनें.

    • नया प्रोजेक्ट बनाने के लिए, प्रोजेक्ट का नाम डालें. आपके पास प्रोजेक्ट के नाम के नीचे दिख रहे प्रोजेक्ट आईडी में भी बदलाव करने का विकल्प होता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

  2. अगर कहा जाए, तो Firebase की शर्तें पढ़ें और उन्हें स्वीकार करें.

  3. जारी रखें पर क्लिक करें.

  4. (ज़रूरी नहीं) अपने प्रोजेक्ट के लिए Google Analytics सेट अप करें. इससे, आपको यहां दिए गए Firebase प्रॉडक्ट का बेहतर अनुभव मिलता है:

    कोई मौजूदा Google Analytics खाता चुनें या नया खाता बनाएं.

    नया खाता बनाने पर, अपनी Analytics रिपोर्टिंग की जगह चुनें. इसके बाद, अपने प्रोजेक्ट के लिए, डेटा शेयर करने की सेटिंग और Google Analytics की शर्तें स्वीकार करें.

  5. प्रोजेक्ट बनाएं पर क्लिक करें. अगर किसी मौजूदा Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो Firebase जोड़ें पर क्लिक करें.

Firebase, आपके Firebase प्रोजेक्ट के लिए संसाधनों को अपने-आप उपलब्ध कराता है. प्रोसेस पूरी होने के बाद, आपको Firebase कंसोल में अपने Firebase प्रोजेक्ट की खास जानकारी वाले पेज पर ले जाया जाएगा.

तीसरा चरण: Firebase के साथ अपना ऐप्लिकेशन रजिस्टर करना

अपने Android ऐप्लिकेशन में Firebase का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को अपने Firebase प्रोजेक्ट के साथ रजिस्टर करना होगा. अपने ऐप्लिकेशन को रजिस्टर करने को, अक्सर अपने प्रोजेक्ट में ऐप्लिकेशन को "जोड़ना" कहा जाता है.

  1. Firebase console पर जाएं.

  2. सेटअप वर्कफ़्लो लॉन्च करने के लिए, प्रोजेक्ट की खास जानकारी वाले पेज के बीच में मौजूद Android आइकॉन () या ऐप्लिकेशन जोड़ें पर क्लिक करें.

  3. Android पैकेज का नाम फ़ील्ड में, अपने ऐप्लिकेशन का पैकेज नाम डालें.

    • पैकेज का नाम, डिवाइस और Google Play Store पर आपके ऐप्लिकेशन की खास तौर से पहचान करता है.

    • पैकेज के नाम को अक्सर ऐप्लिकेशन आईडी कहा जाता है.

    • अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में, अपने ऐप्लिकेशन का पैकेज नाम ढूंढें. आम तौर पर, यह app/build.gradle होता है. पैकेज के नाम का उदाहरण: com.yourcompany.yourproject.

    • ध्यान रखें कि पैकेज के नाम की वैल्यू केस-सेंसिटिव होती है. साथ ही, Firebase प्रोजेक्ट में रजिस्टर करने के बाद, इस Firebase Android ऐप्लिकेशन के लिए इसे बदला नहीं जा सकता.

  4. (ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का कोई दूसरा नाम और डीबग साइनिंग सर्टिफ़िकेट SHA-1.

  5. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.

चौथा चरण: Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना

  1. Firebase की Android कॉन्फ़िगरेशन फ़ाइल पाने के लिए, google-services.json डाउनलोड करें पर क्लिक करें.

    • Firebase कॉन्फ़िगरेशन फ़ाइल में आपके प्रोजेक्ट के लिए यूनीक, लेकिन सामान्य आइडेंटिफ़ायर होते हैं. इस कॉन्फ़िगरेशन फ़ाइल के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानें पर जाएं.

    • Firebase कॉन्फ़िगरेशन फ़ाइल को कभी भी फिर से डाउनलोड किया जा सकता है.

    • पक्का करें कि कॉन्फ़िगरेशन फ़ाइल के नाम में (2) जैसे अतिरिक्त वर्ण न हों.

  2. अपने C++ प्रोजेक्ट को किसी आईडीई में खोलें. इसके बाद, अपने प्रोजेक्ट में कॉन्फ़िगरेशन फ़ाइल जोड़ें:

  3. (सिर्फ़ Gradle बिल्ड के लिए) अपने C++ प्रोजेक्ट में Firebase की सेवाएं चालू करने के लिए, अपनी टॉप-लेवल build.gradle फ़ाइल में google-services प्लग इन जोड़ें.

    1. Google Services Gradle प्लग इन को शामिल करने के लिए नियम जोड़ें. देखें कि आपके पास Google की मेवन रिपॉज़िटरी भी है या नहीं.

        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.4.2'  // Google Services plugin
            implementation 'com.google.android.gms:18.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 कंसोल में सेट अप करने के टास्क पूरे कर लिए हैं. यहां Firebase C++ SDK टूल जोड़ें.

पांचवां चरण: Firebase C++ SDK टूल जोड़ना

इस सेक्शन में दिए गए चरणों में, Firebase C++ प्रोजेक्ट में काम करने वाले Firebase प्रॉडक्ट जोड़ने का तरीका बताया गया है.

  1. Firebase C++ SDK डाउनलोड करें. इसके बाद, SDK टूल को किसी सुविधाजनक जगह पर अनज़िप करें.

    Firebase C++ SDK टूल, किसी खास प्लैटफ़ॉर्म के लिए नहीं है. हालांकि, इसमें प्लैटफ़ॉर्म के हिसाब से लाइब्रेरी शामिल होती हैं.

  2. अपने प्रोजेक्ट की gradle.properties फ़ाइल में, अनज़िप किए गए SDK टूल की जगह की जानकारी दें:

    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) में, यह कॉन्टेंट जोड़ें.
    उन Firebase प्रॉडक्ट के लिए लाइब्रेरी डिपेंडेंसी शामिल करें जिनका इस्तेमाल आपको अपने ऐप्लिकेशन में करना है.

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }
    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      auth
      database
    }
  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 की सेवाओं का इस्तेमाल करने के लिए रजिस्टर और कॉन्फ़िगर किया गया हो.

  1. पक्का करें कि आपके पास Android NDK v10d या उसके बाद का वर्शन हो.
  2. Firebase C++ SDK डाउनलोड करें. इसके बाद, SDK टूल को किसी ऐसी जगह पर अनज़िप करें जहां आपके लिए काम करना आसान हो.

    Firebase C++ SDK टूल, किसी खास प्लैटफ़ॉर्म के लिए नहीं है. हालांकि, इसमें प्लैटफ़ॉर्म के हिसाब से लाइब्रेरी शामिल होती हैं.

  3. अपनी local.properties फ़ाइल खोलें. इसके बाद:

    • firebase_cpp_sdk.dir वैरिएबल को अनज़िप किए गए Firebase C++ SDK टूल की जगह पर सेट करें.
    • ndk.dir वैरिएबल को Android NDK की जगह पर सेट करें.
  4. Gradle में पहले से मौजूद ndkBuild की सुविधा का इस्तेमाल करने के लिए, अपनी टॉप-लेवल डायरेक्ट्री में jni डायरेक्ट्री बनाएं. इसके बाद, ये make फ़ाइलें बनाएं.

    1. इनके साथ jni/Application.mk फ़ाइल बनाएं:

      APP_PLATFORM:=android-14
      NDK_TOOLCHAIN_VERSION=clang
      APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64
      APP_STL:=c++_static
      APP_MODULES:=android_main
      APP_CPPFLAGS+=-std=c++11
    2. यहां दिए गए कॉन्टेंट के साथ jni/Android.mk फ़ाइल बनाएं.

      आपको जिस Firebase प्रॉडक्ट का इस्तेमाल करना है उसकी लाइब्रेरी शामिल करें. उदाहरण के लिए, Analytics का इस्तेमाल करने के लिए:

      LOCAL_PATH:=$(call my-dir)/..
      
      ifeq ($(FIREBASE_CPP_SDK_DIR),)
      $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.)
      endif
      
      # With Firebase libraries for the selected build configuration (ABI + STL)
      STL:=$(firstword $(subst _, ,$(APP_STL)))
      FIREBASE_LIBRARY_PATH:=\
      $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL)
      
      # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products.
      include $(CLEAR_VARS)
      LOCAL_MODULE:=firebase_app
      LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a
      LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include
      include $(PREBUILT_STATIC_LIBRARY)
      
      # Include the Firebase library for Google Analytics.
      # Note: Duplicate this block for each Firebase product that you want
      # to use in your app, and replace variable values as appropriate.
      include $(CLEAR_VARS)
      LOCAL_MODULE:=firebase_analytics
      LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a
      LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include
      include $(PREBUILT_STATIC_LIBRARY)
      
      include $(CLEAR_VARS)
      LOCAL_MODULE:=android_main
      # Reference your project's C++ source files
      LOCAL_SRC_FILES:=\
        $(LOCAL_PATH)/src/common_main.cc \
        $(LOCAL_PATH)/src/android/android_main.cc
      LOCAL_STATIC_LIBRARIES:=\
        firebase_analytics \
        firebase_app  # this library reference must always be listed last
      LOCAL_WHOLE_STATIC_LIBRARIES:=\
        android_native_app_glue
      LOCAL_C_INCLUDES:=\
        $(NDK_ROOT)/sources/android/native_app_glue \
        $(LOCAL_PATH)/src
      LOCAL_LDLIBS:=-llog -landroid -latomic
      LOCAL_ARM_MODE:=arm
      LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined
      include $(BUILD_SHARED_LIBRARY)
      
      $(call import-add-path,$(NDK_ROOT)/sources/android)
      $(call import-module,android/native_app_glue)
  5. अपनी टॉप-लेवल build.gradle फ़ाइल खोलें. इसके बाद, यह तरीका अपनाएं:

    1. आपको जिन Firebase प्रॉडक्ट का इस्तेमाल करना है उनके लिए, डिपेंडेंसी जोड़ें. उदाहरण के लिए, Analytics का इस्तेमाल करने के लिए:

      dependencies {
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
      }
    2. नीचे दी गई लाइनें जोड़ें, ताकि आपका प्रोजेक्ट, अपनी jni/Android.mk फ़ाइल में बताई गई Firebase लाइब्रेरी को शामिल करने के लिए, Gradle की पहले से मौजूद ndk-build सहायता का इस्तेमाल कर सके.

      android {
      // ...
          defaultConfig {
              // ...
              externalNativeBuild.ndkBuild {
                  arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}",
                            "NDK_APPLICTION_MK=jni/Application.mk",
                            sprintf("APP_PLATFORM=android-%d",
                            android.defaultConfig.minSdkVersion.mApiLevel)
              }
          }
      }

Firebase के हर प्रॉडक्ट की डिपेंडेंसी अलग-अलग होती हैं. आपको जिन Firebase प्रॉडक्ट का इस्तेमाल करना है उनके लिए, सूची में दी गई सभी डिपेंडेंसी जोड़ना न भूलें.

libfirebase_app.a जैसी Firebase C++ लाइब्रेरी जोड़ें. इसके लिए, उन्हें टॉप-लेवल jni/Android.mk फ़ाइल में शामिल करें. com.google.firebase:firebase-auth जैसी अन्य डिपेंडेंसी के लिए, उन्हें अपनी टॉप-लेवल build.gradle फ़ाइल में जोड़ें.

Firebase प्रॉडक्ट लाइब्रेरी और डिपेंडेंसी
AdMob libfirebase_admob.a
(ज़रूरी है) libfirebase_analytics.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-ads:19.8.0'
(ज़रूरी है) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Analytics libfirebase_analytics.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-analytics:21.0.0'
App Check libfirebase_app_check.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-appcheck:17.0.0'
Authentication libfirebase_auth.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-auth:21.0.5'
Cloud Firestore libfirebase_firestore.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-firestore:24.1.2'
Cloud Functions libfirebase_functions.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-functions:20.1.0'
Cloud Messaging libfirebase_messaging.a
(सुझाया गया) libfirebase_analytics.a
(ज़रूरी) libfirebase_app.a

implementation 'com.google.firebase:firebase-messaging:23.0.5'
(सुझाया गया) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Cloud Storage libfirebase_storage.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-storage:20.0.1'
Dynamic Links ibfirebase_dynamic_links.a
(सुझाया गया) libfirebase_analytics.a
(ज़रूरी) libfirebase_app.a

implementation 'com.google.firebase:firebase-dynamic-links:21.0.1'
(सुझाया गया) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Realtime Database libfirebase_database.a
(ज़रूरी है) libfirebase_app.a

implementation 'com.google.firebase:firebase-database:20.0.5'
Remote Config libfirebase_remote_config.a
(सुझाया गया) libfirebase_analytics.a
(ज़रूरी) libfirebase_app.a

implementation 'com.google.firebase:firebase-config:21.1.0'
(सुझाया गया) implementation 'com.google.firebase:firebase-analytics:21.0.0'

उपलब्ध लाइब्रेरी

रेफ़रंस दस्तावेज़ में C++ Firebase लाइब्रेरी के बारे में ज़्यादा जानें. इसके अलावा, GitHub पर मौजूद हमारे ओपन-सोर्स SDK रिलीज़ में भी इस बारे में जानकारी मिल सकती है.

Android के लिए उपलब्ध लाइब्रेरी (CMake का इस्तेमाल करके)

ध्यान दें कि Apple प्लैटफ़ॉर्म के लिए C++ लाइब्रेरी, इस सेटअप पेज के Apple प्लैटफ़ॉर्म (iOS+) वर्शन पर दी गई हैं.

Firebase प्रॉडक्ट लाइब्रेरी के रेफ़रंस
(build.gradle फ़ाइल के लिए firebaseCpp.dependencies
)
लाइब्रेरी के रेफ़रंस
(CMakeLists.txt फ़ाइल के लिए firebase_libs
)
AdMob admob firebase_admob
(ज़रूरी है) firebase_analytics
(ज़रूरी है) firebase_app
Analytics analytics firebase_analytics
(ज़रूरी है) firebase_app
App Check appCheck firebase_app_check
(ज़रूरी है) firebase_app
Authentication auth firebase_auth
(ज़रूरी है) firebase_app
Cloud Firestore firestore firebase_firestore
(ज़रूरी है) firebase_auth
(ज़रूरी है) firebase_app
Cloud Functions functions firebase_functions
(ज़रूरी है) firebase_app
Cloud Messaging messaging firebase_messaging
(सुझाया गया) firebase_analytics
(ज़रूरी) firebase_app
Cloud Storage storage firebase_storage
(ज़रूरी है) firebase_app
Dynamic Links dynamicLinks firebase_dynamic_links
(सुझाया गया) firebase_analytics
(ज़रूरी) firebase_app
Realtime Database database firebase_database
(ज़रूरी है) firebase_app
Remote Config remoteConfig firebase_remote_config
(सुझाया गया) firebase_analytics
(ज़रूरी) firebase_app

मोबाइल सेटअप के बारे में ज़्यादा जानकारी

NDK क्रैश रिपोर्ट पाना

Firebase Crashlytics, Android की नेटिव लाइब्रेरी का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, क्रैश रिपोर्टिंग की सुविधा देता है. ज़्यादा जानने के लिए, Android NDK क्रैश रिपोर्ट पाना लेख पढ़ें.

कस्टम बिल्ड सिस्टम

google-services.json को .xml संसाधनों में बदलने के लिए, Firebase स्क्रिप्ट generate_xml_from_google_services_json.py उपलब्ध कराता है. इन संसाधनों को अपने प्रोजेक्ट में शामिल किया जा सकता है. यह स्क्रिप्ट वही बदलाव लागू करती है जो Android ऐप्लिकेशन बनाते समय, Google Play services Gradle प्लग इन करता है.

अगर Gradle का इस्तेमाल करके बिल्ड नहीं किया जाता है (उदाहरण के लिए, ndk-build, मेकफ़ाइलें, Visual Studio वगैरह का इस्तेमाल किया जाता है), तो इस स्क्रिप्ट का इस्तेमाल करके Android स्ट्रिंग रिसॉर्स को अपने-आप जनरेट किया जा सकता है.

ProGuard

कई Android बिल्ड सिस्टम, रिलीज़ मोड में बिल्ड के लिए ProGuard का इस्तेमाल करते हैं. इससे ऐप्लिकेशन का साइज़ कम होता है और Java सोर्स कोड को सुरक्षित रखा जाता है.

ProGuard का इस्तेमाल करने पर, आपको libs/android/*.pro उन Firebase C++ लाइब्रेरी से जुड़ी फ़ाइलें जोड़नी होंगी जिनका इस्तेमाल आपने ProGuard कॉन्फ़िगरेशन में किया है.

उदाहरण के लिए, Gradle में Google Analytics का इस्तेमाल करने पर, आपकी 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 services की ज़रूरी शर्त

ज़्यादातर Firebase C++ लाइब्रेरी के लिए, क्लाइंट के Android डिवाइस पर Google Play services होना ज़रूरी है. अगर Firebase C++ लाइब्रेरी को शुरू करने पर, kInitResultFailedMissingDependency दिखता है, तो इसका मतलब है कि क्लाइंट डिवाइस पर Google Play services उपलब्ध नहीं है. इसका मतलब है कि उसे अपडेट करना होगा, फिर से चालू करना होगा, अनुमतियां ठीक करनी होंगी वगैरह. जब तक क्लाइंट डिवाइस की स्थिति ठीक नहीं हो जाती, तब तक Firebase लाइब्रेरी का इस्तेमाल नहीं किया जा सकता.

google_play_services/availability.h में मौजूद फ़ंक्शन का इस्तेमाल करके, यह पता लगाया जा सकता है कि क्लाइंट डिवाइस पर Google Play services उपलब्ध क्यों नहीं है. साथ ही, इस समस्या को ठीक करने की कोशिश भी की जा सकती है.

नीचे दी गई टेबल में बताया गया है कि काम करने वाले हर Firebase प्रॉडक्ट के लिए, क्लाइंट डिवाइस पर Google Play services की ज़रूरत है या नहीं.

Firebase C++ लाइब्रेरी क्या क्लाइंट डिवाइस पर Google Play services की ज़रूरत है?
AdMob आम तौर पर ज़रूरी नहीं है
Analytics ज़रूरी नहीं है
Authentication ज़रूरी है
Cloud Firestore ज़रूरी है
Cloud Functions ज़रूरी है
Cloud Messaging ज़रूरी है
Cloud Storage ज़रूरी है
Dynamic Links ज़रूरी है
Realtime Database ज़रूरी है
Remote Config ज़रूरी है

AdMob और Google Play services

Google Mobile Ads SDK for Android के ज़्यादातर वर्शन, क्लाइंट डिवाइस पर Google Play services के बिना भी ठीक से काम कर सकते हैं. हालांकि, अगर ऊपर दी गई स्टैंडर्ड com.google.firebase:firebase-ads डिपेंडेंसी के बजाय, com.google.android.gms:play-services-ads-lite डिपेंडेंसी का इस्तेमाल किया जा रहा है, तो Google Play services की ज़रूरत होगी.

AdMob को शुरू करने पर, kInitResultFailedMissingDependency वैल्यू सिर्फ़ तब दिखेगी, जब ये दोनों शर्तें पूरी हों:

  • क्लाइंट डिवाइस पर Google Play services उपलब्ध नहीं है.
  • com.google.android.gms:play-services-ads-lite का इस्तेमाल किया जा रहा है.

डेस्कटॉप वर्कफ़्लो सेट अप करना (बीटा वर्शन)

गेम बनाते समय, इसे अक्सर डेस्कटॉप प्लैटफ़ॉर्म पर टेस्ट करना बहुत आसान होता है. इसके बाद, डेवलपमेंट के दौरान इसे मोबाइल डिवाइसों पर डिप्लॉय और टेस्ट किया जाता है. इस वर्कफ़्लो के साथ काम करने के लिए, हम Firebase C++ SDK टूल का एक सबसेट उपलब्ध कराते हैं. यह सबसेट, Windows, macOS, Linux, और C++ एडिटर में काम करता है.

  1. डेस्कटॉप वर्कफ़्लो के लिए, आपको ये काम करने होंगे:

    1. CMake के लिए अपना C++ प्रोजेक्ट कॉन्फ़िगर करें.
    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. अपने C++ प्रोजेक्ट में Firebase SDK टूल जोड़ें.

    यहां दिए गए चरणों में, C++ प्रोजेक्ट में काम करने वाले किसी भी Firebase प्रॉडक्ट को जोड़ने का तरीका बताया गया है. इस उदाहरण में, हम Firebase Authentication और Firebase Realtime Database को जोड़ने का तरीका बता रहे हैं.

    1. अपने FIREBASE_CPP_SDK_DIR एनवायरमेंट वैरिएबल को, अनज़िप किए गए Firebase C++ SDK टूल की जगह पर सेट करें.

    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 के लिए, लाइब्रेरी के वर्शन इनके आधार पर उपलब्ध कराए जाते हैं:

  • बिल्ड प्लैटफ़ॉर्म: 32-बिट (x86) बनाम 64-बिट (x64) मोड
  • Windows रनटाइम एनवायरमेंट: मल्टी-थ्रेड / MT बनाम मल्टी-थ्रेड डीएलएल /MD
  • टारगेट: रिलीज़ बनाम डीबग

ध्यान दें कि इन लाइब्रेरी की जांच, Visual Studio 2015 और 2017 का इस्तेमाल करके की गई थी.

Windows पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में ये Windows SDK टूल वाली लाइब्रेरी जोड़ें. ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें.

Firebase C++ लाइब्रेरी Windows 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 (Darwin) के लिए, लाइब्रेरी के वर्शन 64-बिट (x86_64) प्लैटफ़ॉर्म के लिए उपलब्ध हैं. आपकी सुविधा के लिए फ़्रेमवर्क भी उपलब्ध हैं.

ध्यान दें कि macOS लाइब्रेरी की जांच, Xcode 13.3.1 का इस्तेमाल करके की गई है.

macOS पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में ये लिंक करें:

  • pthread सिस्टम लाइब्रेरी
  • CoreFoundation macOS सिस्टम फ़्रेमवर्क
  • Foundation macOS सिस्टम फ़्रेमवर्क
  • Security macOS सिस्टम फ़्रेमवर्क
  • GSS macOS सिस्टम फ़्रेमवर्क
  • Kerberos macOS सिस्टम फ़्रेमवर्क
  • SystemConfiguration macOS सिस्टम फ़्रेमवर्क

ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें.

Linux लाइब्रेरी

Linux के लिए, लाइब्रेरी के वर्शन 32-बिट (i386) और 64-बिट (x86_64) प्लैटफ़ॉर्म के लिए उपलब्ध हैं.

ध्यान दें कि Ubuntu पर GCC 4.8.0, GCC 7.2.0, और Clang 5.0 का इस्तेमाल करके, Linux लाइब्रेरी की जांच की गई थी.

Linux पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में pthread सिस्टम लाइब्रेरी को लिंक करें. ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें. अगर GCC 5 या उसके बाद के वर्शन का इस्तेमाल करके बिल्ड किया जा रहा है, तो -D_GLIBCXX_USE_CXX11_ABI=0 तय करें.

अगले चरण