আপনার C++ প্রকল্পে Firebase যোগ করুন

আমাদের Firebase C++ SDK এর সাহায্যে আপনার C++ গেমগুলিকে শক্তিশালী করুন যা Firebase SDK-এর উপরে একটি C++ ইন্টারফেস প্রদান করে।

কোনো প্ল্যাটফর্ম-নেটিভ কোড না লিখেই সম্পূর্ণরূপে আপনার C++ কোড থেকে Firebase অ্যাক্সেস করুন। Firebase SDK এছাড়াও C++ ডেভেলপারদের কাছে পরিচিত একটি ইন্টারফেসে Firebase দ্বারা ব্যবহৃত অনেক ভাষা-নির্দিষ্ট ইডিয়ম অনুবাদ করে।

আমাদের Firebase গেম পৃষ্ঠায় Firebase দিয়ে আপনার গেমগুলিকে শক্তিশালী করার বিষয়ে আরও তথ্য খুঁজুন।

ইতিমধ্যে আপনার C++ প্রকল্পে Firebase যোগ করেছেন? নিশ্চিত করুন যে আপনি Firebase C++ SDK- এর সর্বশেষ সংস্করণ ব্যবহার করছেন।


পূর্বশর্ত

  • আপনার পছন্দের সম্পাদক বা IDE ইনস্টল করুন, যেমন Android Studio, IntelliJ, বা VS Code।

  • Android SDK পান।

  • নিশ্চিত করুন যে আপনার প্রকল্প এই প্রয়োজনীয়তাগুলি পূরণ করে:

  • একটি শারীরিক ডিভাইস সেট আপ করুন বা আপনার অ্যাপ চালানোর জন্য একটি এমুলেটর ব্যবহার করুন।

    • এমুলেটরদের অবশ্যই Google Play এর সাথে একটি এমুলেটর ছবি ব্যবহার করতে হবে।

    • কিছু C++ লাইব্রেরির জন্য, ক্লায়েন্ট ডিভাইসে Google Play পরিষেবার প্রয়োজন হয়; এই পৃষ্ঠায় তালিকা পর্যালোচনা করুন.

  • আপনার Google অ্যাকাউন্ট ব্যবহার করে Firebase-এ সাইন ইন করুন

ধাপ 2 : একটি ফায়ারবেস প্রকল্প তৈরি করুন

আপনার C++ প্রজেক্টে Firebase যোগ করার আগে, আপনার C++ প্রোজেক্টের সাথে সংযোগ করার জন্য আপনাকে একটি Firebase প্রজেক্ট তৈরি করতে হবে। Firebase প্রকল্পগুলি সম্পর্কে আরও জানতে Firebase প্রকল্পগুলি বুঝতে দেখুন৷

  1. Firebase কনসোলে , প্রজেক্ট যোগ করুন ক্লিক করুন।

    • একটি বিদ্যমান Google Cloud প্রকল্পে Firebase সংস্থান যোগ করতে, এর প্রকল্পের নাম লিখুন বা ড্রপডাউন মেনু থেকে এটি নির্বাচন করুন৷

    • একটি নতুন প্রকল্প তৈরি করতে, পছন্দসই প্রকল্পের নাম লিখুন। এছাড়াও আপনি ঐচ্ছিকভাবে প্রকল্পের নামের নীচে প্রদর্শিত প্রকল্প ID সম্পাদনা করতে পারেন৷

  2. অনুরোধ করা হলে, Firebase শর্তাবলী পর্যালোচনা করুন এবং স্বীকার করুন।

  3. অবিরত ক্লিক করুন.

  4. (ঐচ্ছিক) আপনার প্রোজেক্টের জন্য Google Analytics সেট আপ করুন, যা আপনাকে নিম্নলিখিত Firebase পণ্যগুলির যেকোনো একটি ব্যবহার করে সর্বোত্তম অভিজ্ঞতা পেতে সক্ষম করে:

    হয় একটি বিদ্যমান Google Analytics অ্যাকাউন্ট নির্বাচন করুন বা একটি নতুন অ্যাকাউন্ট তৈরি করুন৷

    আপনি যদি একটি নতুন অ্যাকাউন্ট তৈরি করেন, আপনার Analytics রিপোর্টিং অবস্থান নির্বাচন করুন, তারপর আপনার প্রকল্পের জন্য ডেটা শেয়ারিং সেটিংস এবং Google Analytics শর্তাদি গ্রহণ করুন৷

  5. প্রোজেক্ট তৈরি করুন ক্লিক করুন (বা ফায়ারবেস যোগ করুন , যদি আপনি একটি বিদ্যমান Google Cloud প্রকল্প ব্যবহার করেন)।

Firebase স্বয়ংক্রিয়ভাবে আপনার Firebase প্রকল্পের জন্য সংস্থান সরবরাহ করে। প্রক্রিয়াটি সম্পূর্ণ হলে, আপনাকে Firebase কনসোলে আপনার Firebase প্রকল্পের ওভারভিউ পৃষ্ঠায় নিয়ে যাওয়া হবে।

ধাপ 3 : Firebase-এ আপনার অ্যাপ নিবন্ধন করুন

আপনার অ্যান্ড্রয়েড অ্যাপে ফায়ারবেস ব্যবহার করতে, আপনাকে আপনার ফায়ারবেস প্রকল্পের সাথে আপনার অ্যাপটি নিবন্ধন করতে হবে। আপনার অ্যাপ নিবন্ধন করাকে প্রায়ই আপনার প্রকল্পে আপনার অ্যাপকে "সংযোজন" বলা হয়।

  1. Firebase কনসোলে যান।

  2. প্রোজেক্ট ওভারভিউ পৃষ্ঠার কেন্দ্রে, সেটআপ ওয়ার্কফ্লো চালু করতে Android আইকনে ক্লিক করুন ( ) বা অ্যাপ যোগ করুন

  3. অ্যান্ড্রয়েড প্যাকেজ নামের ক্ষেত্রে আপনার অ্যাপের প্যাকেজের নাম লিখুন।

    • একটি প্যাকেজ নাম অনন্যভাবে ডিভাইসে এবং Google Play স্টোরে আপনার অ্যাপটিকে সনাক্ত করে।

    • একটি প্যাকেজের নাম প্রায়ই একটি অ্যাপ্লিকেশন আইডি হিসাবে উল্লেখ করা হয়।

    • আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে আপনার অ্যাপের প্যাকেজের নাম খুঁজুন, সাধারণত app/build.gradle (উদাহরণ প্যাকেজের নাম: com.yourcompany.yourproject )।

    • সচেতন থাকুন যে প্যাকেজ নামের মানটি কেস-সংবেদনশীল, এবং এটি আপনার Firebase প্রোজেক্টে নিবন্ধিত হওয়ার পরে এই Firebase Android অ্যাপের জন্য পরিবর্তন করা যাবে না।

  4. (ঐচ্ছিক) অন্যান্য অ্যাপের তথ্য লিখুন: অ্যাপের ডাকনাম এবং ডিবাগ সাইনিং সার্টিফিকেট SHA-1

    • অ্যাপের ডাকনাম : একটি অভ্যন্তরীণ, সুবিধার শনাক্তকারী যা শুধুমাত্র Firebase কনসোলে আপনার কাছে দৃশ্যমান

    • ডিবাগ সাইনিং সার্টিফিকেট SHA-1 : Firebase Authentication ( Google সাইন ইন বা ফোন নম্বর সাইন ইন ব্যবহার করার সময়) এবং Firebase Dynamic Links একটি SHA-1 হ্যাশ প্রয়োজন।

  5. রেজিস্টার অ্যাপে ক্লিক করুন।

ধাপ 4 : Firebase কনফিগারেশন ফাইল যোগ করুন

  1. আপনার Firebase অ্যান্ড্রয়েড কনফিগারেশন ফাইল পেতে ডাউনলোড google-services.json এ ক্লিক করুন।

    • Firebase কনফিগারেশন ফাইলটিতে আপনার প্রকল্পের জন্য অনন্য, কিন্তু অ-গোপন শনাক্তকারী রয়েছে। এই কনফিগারেশন ফাইল সম্পর্কে আরও জানতে, Firebase প্রজেক্ট বুঝতে দেখুন।

    • আপনি যে কোনো সময় আপনার Firebase কনফিগারেশন ফাইলটি আবার ডাউনলোড করতে পারেন।

    • নিশ্চিত করুন যে কনফিগার ফাইলের নাম অতিরিক্ত অক্ষরের সাথে যুক্ত করা হয়নি, যেমন (2)

  2. একটি IDE-তে আপনার C++ প্রকল্প খুলুন, তারপর আপনার প্রজেক্টে আপনার কনফিগার ফাইল যোগ করুন:

  3. (শুধুমাত্র গ্রেডল তৈরি করে) আপনার C++ প্রকল্পে ফায়ারবেস পরিষেবাগুলি সক্ষম করতে, আপনার শীর্ষ-স্তরের build.gradle ফাইলে google-services প্লাগইন যোগ করুন।

    1. Google Services Gradle প্লাগইন অন্তর্ভুক্ত করতে নিয়ম যোগ করুন। আপনার কাছে Google এর 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.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 যোগ করা চালিয়ে যান।

ধাপ 5 : 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. আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত 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 কনসোল আপনাকে জানায় যে আপনার অ্যাপ সংযোগ সম্পূর্ণ হয়েছে।

আপনি সব প্রস্তুত! আপনার C++ অ্যাপটি ফায়ারবেস পরিষেবা ব্যবহার করার জন্য নিবন্ধিত এবং কনফিগার করা হয়েছে।

  1. নিশ্চিত করুন যে আপনার কাছে Android NDK v10d বা তার পরে আছে।
  2. Firebase C++ SDK ডাউনলোড করুন, তারপর সুবিধাজনক জায়গায় SDK আনজিপ করুন।

    Firebase C++ SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়, তবে এতে প্ল্যাটফর্ম-নির্দিষ্ট লাইব্রেরি রয়েছে।

  3. আপনার local.properties ফাইল খুলুন, তারপর:

    • firebase_cpp_sdk.dir ভেরিয়েবলটিকে আনজিপ করা Firebase C++ SDK-এর অবস্থানে সেট করুন।
    • Android NDK- এর অবস্থানে ndk.dir ভেরিয়েবল সেট করুন।
  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 পণ্যগুলি ব্যবহার করতে চান তার জন্য সমস্ত তালিকাভুক্ত নির্ভরতা যোগ করতে ভুলবেন না।

শীর্ষ-স্তরের jni/Android.mk ফাইলে অন্তর্ভুক্ত করে Firebase C++ লাইব্রেরি (যেমন libfirebase_app.a ) যোগ করুন। অন্যান্য নির্ভরতার জন্য (যেমন com.google.firebase:firebase-auth ), সেগুলিকে আপনার শীর্ষ-স্তরের build.gradle ফাইলে যোগ করুন।

ফায়ারবেস পণ্য লাইব্রেরি এবং নির্ভরতা
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'

উপলব্ধ লাইব্রেরি

রেফারেন্স ডকুমেন্টেশনে এবং GitHub- এ আমাদের ওপেন-সোর্স SDK রিলিজে C++ ফায়ারবেস লাইব্রেরি সম্পর্কে আরও জানুন।

অ্যান্ড্রয়েডের জন্য উপলব্ধ লাইব্রেরি (সিমেক ব্যবহার করে)

মনে রাখবেন যে Apple প্ল্যাটফর্মের জন্য C++ লাইব্রেরিগুলি এই সেটআপ পৃষ্ঠার Apple প্ল্যাটফর্ম (iOS+) সংস্করণে তালিকাভুক্ত করা হয়েছে।

ফায়ারবেস পণ্য লাইব্রেরি রেফারেন্স
( firebaseCpp.dependencies
build.gradle ফাইলের জন্য)
লাইব্রেরি রেফারেন্স
( firebase_libs
CMakeLists.txt ফাইলের জন্য)
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 NDK ক্র্যাশ রিপোর্ট পান দেখুন।

কাস্টম বিল্ড সিস্টেম

Firebase google-services.json .xml রিসোর্সে রূপান্তর করতে generate_xml_from_google_services_json.py স্ক্রিপ্ট প্রদান করে যা আপনি আপনার প্রকল্পে অন্তর্ভুক্ত করতে পারেন। এই স্ক্রিপ্টটি একই রূপান্তর প্রয়োগ করে যা Google Play পরিষেবা গ্রেডল প্লাগইন অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করার সময় সম্পাদন করে।

আপনি যদি Gradle ব্যবহার করে নির্মাণ না করেন (উদাহরণস্বরূপ, আপনি ndk-build, makefiles, Visual Studio, ইত্যাদি ব্যবহার করেন), তাহলে আপনি এই স্ক্রিপ্টটি ব্যবহার করে Android স্ট্রিং রিসোর্স তৈরি করতে পারেন।

প্রোগার্ড

অনেক অ্যান্ড্রয়েড বিল্ড সিস্টেম অ্যাপ্লিকেশন আকার সঙ্কুচিত করতে এবং জাভা সোর্স কোড সুরক্ষিত করতে রিলিজ মোডে বিল্ডের জন্য প্রোগার্ড ব্যবহার করে।

আপনি যদি ProGuard ব্যবহার করেন, তাহলে আপনাকে আপনার ProGuard কনফিগারেশনে যে Firebase C++ লাইব্রেরিগুলি ব্যবহার করছেন তার সাথে সংশ্লিষ্ট libs/android/*.pro এ ফাইলগুলি যোগ করতে হবে৷

উদাহরণস্বরূপ, 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 পরিষেবার প্রয়োজনীয়তা

বেশিরভাগ ফায়ারবেস সি++ লাইব্রেরিতে ক্লায়েন্টের অ্যান্ড্রয়েড ডিভাইসে Google Play পরিষেবা থাকা প্রয়োজন। যদি একটি ফায়ারবেস C++ লাইব্রেরি আরম্ভ করার সময় kInitResultFailedMissingDependency ফেরত দেয়, তাহলে এর মানে হল ক্লায়েন্ট ডিভাইসে Google Play পরিষেবা উপলব্ধ নেই (অর্থাৎ এটি আপডেট করা, পুনরায় সক্রিয় করা, অনুমতি স্থির করা ইত্যাদি)। ক্লায়েন্ট ডিভাইসের পরিস্থিতি ঠিক না হওয়া পর্যন্ত Firebase লাইব্রেরি ব্যবহার করা যাবে না।

আপনি google_play_services/availability.h এর ফাংশনগুলি ব্যবহার করে ক্লায়েন্ট ডিভাইসে কেন Google Play পরিষেবাগুলি অনুপলব্ধ (এবং এটি ঠিক করার চেষ্টা করুন) খুঁজে পেতে পারেন।

প্রতিটি সমর্থিত Firebase পণ্যের জন্য একটি ক্লায়েন্ট ডিভাইসে Google Play পরিষেবার প্রয়োজন কিনা তা নিম্নলিখিত সারণীতে রয়েছে।

ফায়ারবেস সি++ লাইব্রেরি ক্লায়েন্ট ডিভাইসে Google Play পরিষেবার প্রয়োজন?
AdMob প্রয়োজন নেই (সাধারণত)
Analytics প্রয়োজন নেই
Authentication প্রয়োজন
Cloud Firestore প্রয়োজন
Cloud Functions প্রয়োজন
Cloud Messaging প্রয়োজন
Cloud Storage প্রয়োজন
Dynamic Links প্রয়োজন
Realtime Database প্রয়োজন
Remote Config প্রয়োজন

AdMob এবং Google Play পরিষেবা

অ্যান্ড্রয়েডের জন্য Google Mobile Ads SDK-এর বেশিরভাগ সংস্করণ ক্লায়েন্ট ডিভাইসে Google Play পরিষেবা ছাড়াই সঠিকভাবে কাজ করতে পারে। যাইহোক, আপনি যদি উপরে তালিকাভুক্ত স্ট্যান্ডার্ড com.google.firebase:firebase-ads com.google.android.gms:play-services-ads-lite নির্ভরতা ব্যবহার করেন, তাহলে Google Play পরিষেবার প্রয়োজন হয়

AdMob প্রারম্ভিকতা শুধুমাত্র kInitResultFailedMissingDependency প্রদান করবে যখন নিম্নলিখিত দুটিই সত্য হবে:

  • ক্লায়েন্ট ডিভাইসে Google Play পরিষেবাগুলি অনুপলব্ধ৷
  • আপনি com.google.android.gms:play-services-ads-lite ব্যবহার করছেন।

একটি ডেস্কটপ ওয়ার্কফ্লো সেট আপ করুন ( বিটা )

আপনি যখন একটি গেম তৈরি করছেন, তখন আপনার গেমটিকে প্রথমে ডেস্কটপ প্ল্যাটফর্মে পরীক্ষা করা অনেক সহজ, তারপর ডেভেলপমেন্টের পরে মোবাইল ডিভাইসে স্থাপন এবং পরীক্ষা করা। এই কর্মপ্রবাহকে সমর্থন করার জন্য, আমরা Firebase C++ SDK-এর একটি উপসেট প্রদান করি যা Windows, macOS, Linux এবং C++ সম্পাদকের মধ্যে থেকে চলতে পারে।

  1. ডেস্কটপ ওয়ার্কফ্লোগুলির জন্য, আপনাকে নিম্নলিখিতগুলি সম্পূর্ণ করতে হবে:

    1. CMake এর জন্য আপনার C++ প্রকল্প কনফিগার করুন।
    2. একটি ফায়ারবেস প্রকল্প তৈরি করুন
    3. Firebase-এর সাথে আপনার অ্যাপ (iOS বা Android) নিবন্ধন করুন
    4. একটি মোবাইল-প্ল্যাটফর্ম ফায়ারবেস কনফিগারেশন ফাইল যোগ করুন
  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 কনসোল সেটআপ ওয়ার্কফ্লোতে প্রবেশ করেছেন। কনফিগার ফাইল সম্পর্কে আরও জানতে ফায়ারবেস প্রজেক্ট বুঝতে ভিজিট করুন।

  3. আপনার C++ প্রকল্পে Firebase SDK যোগ করুন।

    নিচের ধাপগুলো আপনার C++ প্রোজেক্টে যেকোনও সমর্থিত ফায়ারবেস প্রোডাক্ট যোগ করার উদাহরণ হিসেবে কাজ করে। এই উদাহরণে, আমরা 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-এ স্বতন্ত্র ডেস্কটপ বিল্ডে ব্যবহার করতে সক্ষম করে।

ফায়ারবেস পণ্য লাইব্রেরি রেফারেন্স (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

Windows, macOS, এবং Linux-এর জন্য তৈরি করার সময় সুবিধার জন্য Firebase অবশিষ্ট ডেস্কটপ লাইব্রেরিগুলিকে স্টাব (নন-ফাংশনাল) বাস্তবায়ন হিসাবে প্রদান করে। অতএব, ডেস্কটপ টার্গেট করার জন্য আপনাকে শর্তসাপেক্ষে কোড কম্পাইল করতে হবে না।

Realtime Database ডেস্কটপ

ডেস্কটপের জন্য Realtime Database SDK আপনার ডাটাবেস অ্যাক্সেস করতে REST ব্যবহার করে, তাই আপনাকে অবশ্যই ডেস্কটপে Query::OrderByChild() এর সাথে ব্যবহার করা সূচীগুলি ঘোষণা করতে হবে বা আপনার শ্রোতারা ব্যর্থ হবেন৷

ডেস্কটপ সেটআপের জন্য অতিরিক্ত তথ্য

উইন্ডোজ লাইব্রেরি

উইন্ডোজের জন্য, লাইব্রেরি সংস্করণগুলি নিম্নলিখিতগুলির উপর ভিত্তি করে প্রদান করা হয়:

  • বিল্ড প্ল্যাটফর্ম: 32-বিট (x86) বনাম 64-বিট (x64) মোড
  • উইন্ডোজ রানটাইম পরিবেশ: মাল্টিথ্রেডেড/এমটি বনাম মাল্টিথ্রেডেড ডিএলএল/এমডি
  • লক্ষ্য: রিলিজ বনাম ডিবাগ

উল্লেখ্য যে নিম্নলিখিত লাইব্রেরিগুলি ভিজ্যুয়াল স্টুডিও 2015 এবং 2017 ব্যবহার করে পরীক্ষা করা হয়েছিল।

Windows-এ 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 (ডারউইনের জন্য), 64-বিট (x86_64) প্ল্যাটফর্মের জন্য লাইব্রেরি সংস্করণ সরবরাহ করা হয়। ফ্রেমওয়ার্ক আপনার সুবিধার জন্য প্রদান করা হয়.

মনে রাখবেন যে macOS লাইব্রেরিগুলি Xcode 13.3.1 ব্যবহার করে পরীক্ষা করা হয়েছে।

macOS-এ C++ ডেস্কটপ অ্যাপ তৈরি করার সময়, আপনার প্রোজেক্টে নিম্নলিখিত লিঙ্ক করুন:

  • pthread সিস্টেম লাইব্রেরি
  • CoreFoundation ম্যাকোস সিস্টেম ফ্রেমওয়ার্ক
  • Foundation macOS সিস্টেম ফ্রেমওয়ার্ক
  • Security macOS সিস্টেম ফ্রেমওয়ার্ক
  • GSS macOS সিস্টেম ফ্রেমওয়ার্ক
  • Kerberos macOS সিস্টেম ফ্রেমওয়ার্ক
  • SystemConfiguration macOS সিস্টেম ফ্রেমওয়ার্ক

আরও তথ্যের জন্য আপনার কম্পাইলার ডকুমেন্টেশনের সাথে পরামর্শ করুন।

লিনাক্স লাইব্রেরি

লিনাক্সের জন্য, 32-বিট (i386) এবং 64-বিট (x86_64) প্ল্যাটফর্মের জন্য লাইব্রেরি সংস্করণ সরবরাহ করা হয়।

উল্লেখ্য যে লিনাক্স লাইব্রেরিগুলি উবুন্টুতে GCC 4.8.0, GCC 7.2.0, এবং Clang 5.0 ব্যবহার করে পরীক্ষা করা হয়েছিল।

লিনাক্সে C++ ডেস্কটপ অ্যাপ তৈরি করার সময়, আপনার প্রোজেক্টের সাথে pthread সিস্টেম লাইব্রেরি লিঙ্ক করুন। আরও তথ্যের জন্য আপনার কম্পাইলার ডকুমেন্টেশনের সাথে পরামর্শ করুন। আপনি যদি GCC 5 বা তার পরে তৈরি করেন, -D_GLIBCXX_USE_CXX11_ABI=0 সংজ্ঞায়িত করুন।

পরবর্তী পদক্ষেপ