আপনার C++ প্রোজেক্টে Firebase যোগ করা

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

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

আমাদের Firebase গেম পৃষ্ঠায় Firebase-এর মাধ্যমে আপনার গেম আরও শক্তিশালী করা সম্পর্কে আরও তথ্য জানুন।

আপনার C++ প্রোজেক্টে Firebase আগেই যোগ করেছেন? আপনি Firebase C++ SDK-এর লেটেস্ট ভার্সন ব্যবহার করছেন কিনা তা নিশ্চিত করুন।


পূর্বশর্ত

  • এগুলি ইনস্টল করুন:

    • Xcode 26.2 বা তার পরবর্তী যেকোনও ভার্সন
    • CocoaPods 1.12.0 বা তার পরবর্তী যেকোনও ভার্সন
  • আপনার প্রজেক্টের টার্গেট যেন নিম্নলিখিত প্ল্যাটফর্ম ভার্সন বা তার পরবর্তী ভার্সন হয় তা নিশ্চিত করুন:

    • iOS 15
    • tvOS 15
  • আপনার অ্যাপ চালানোর জন্য কোনও ফিজিক্যাল ডিভাইস সেট-আপ করুন অথবা সিমুলেটর ব্যবহার করুন।

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

ধাপ ২: Firebase প্রোজেক্ট তৈরি করুন

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

ধাপ ৩: Firebase-এ আপনার অ্যাপ রেজিস্টার করুন

আপনার Apple অ্যাপে Firebase ব্যবহার করতে, আপনাকে নিজের Firebase প্রোজেক্টের সাথে অ্যাপ রেজিস্টার করতে হবে। আপনার অ্যাপ রেজিস্টার করাকে প্রায়ই আপনার প্রোজেক্টে অ্যাপ "যোগ করা" বলা হয়।

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

  2. সেট-আপ ওয়ার্কফ্লো লঞ্চ করতে, প্রোজেক্ট ওভারভিউ পৃষ্ঠার কেন্দ্রে, iOS+ আইকনে ক্লিক করুন ।

    আপনার Firebase প্রোজেক্টে কোনও অ্যাপ আগে থেকেই যোগ করে থাকলে, প্ল্যাটফর্ম বিকল্প দেখতে অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন।

  3. বান্ডেল আইডি ফিল্ডে আপনার অ্যাপের বান্ডেল আইডি লিখুন।

  4. (ঐচ্ছিক) অন্যান্য অ্যাপের তথ্য লিখুন: অ্যাপের ডাকনাম ও App Store আইডি।

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

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

  1. আপনার Firebase Apple প্ল্যাটফর্মের কনফিগারেশন ফাইল পেতে, GoogleService-Info.plist ডাউনলোড করুন বিকল্পে ক্লিক করুন।

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

  3. প্রম্পট করা হলে, সব টার্গেটে কনফিগারেশন ফাইল যোগ করার বিকল্প বেছে নিন।

Firebase কনসোলে সেট-আপ টাস্ক সম্পূর্ণ করা হয়ে গেছে। নিচে Firebase C++ SDK যোগ করা চালিয়ে যান।

ধাপ ৫: Firebase C++ SDK যোগ করুন

এই বিভাগে দেওয়া ধাপগুলি হল কীভাবে আপনার Firebase C++ প্রোজেক্টে কাজ করে এমন Firebase প্রোডাক্ট যোগ করতে হয় তার একটি উদাহরণ।

  1. Firebase C++ SDK ডাউনলোড করুন, তারপর SDK-কে কোনও সুবিধাজনক জায়গায় আনজিপ করুন।

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

  2. আনজিপ করা SDK থেকে Firebase পড যোগ করুন।

    1. আপনার আগে থেকে কোনও Podfile না থাকলে, একটি তৈরি করুন:

      cd your-app-directory
      pod init

    2. আপনার অ্যাপে ব্যবহার করতে চান এমন Firebase পড আপনার Podfile-এ যোগ করুন।

      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. পড ইনস্টল করুন, তারপর Xcode-এ .xcworkspace ফাইল খুলুন।

      pod install
      open your-app.xcworkspace

  3. আনজিপ করা SDK থেকে Firebase ফ্রেমওয়ার্ক যোগ করুন।

    এইসব ফ্রেমওয়ার্ক যোগ করার সবচেয়ে সহজ উপায় হল, সাধারণত সেগুলিকে কোনও Finder উইন্ডো থেকে সরাসরি Xcode-এর প্রোজেক্ট নেভিগেটর প্যানে (ডিফল্ট হিসেবে সবচেয়ে বাঁদিকের প্যানে; অথবা Xcode-এর উপরের বাঁদিকে ফাইল আইকনে ক্লিক করুন) টেনে নিয়ে যাওয়া।

    1. Firebase C++ ফ্রেমওয়ার্ক firebase.framework যোগ করুন, যা Firebase-এর যেকোনও প্রোডাক্ট ব্যবহার করার জন্য প্রয়োজনীয়।

    2. আপনি ব্যবহার করতে চান এমন প্রতিটি Firebase প্রোডাক্টের জন্য ফ্রেমওয়ার্ক যোগ করুন। যেমন, Firebase Authentication ব্যবহার করতে, firebase_auth.framework যোগ করুন।

  4. Firebase কনসোলে ফিরে গিয়ে, সেট-আপ ওয়ার্কফ্লোতে, পরবর্তী বিকল্পে ক্লিক করুন।

  5. আপনি Analytics যোগ করে থাকলে, Firebase-এ যাচাইকরণ পাঠানোর জন্য আপনার অ্যাপ চালান যাতে Firebase সফলভাবে ইন্টিগ্রেট করা হয়েছে তা বোঝা যায়। অন্যথায়, আপনি এই যাচাইকরণ ধাপটি এড়িয়ে যেতে পারেন।

    আপনার ডিভাইসের লগে Firebase যাচাইকরণ সংক্রান্ত তথ্য দেখানো হবে, যেখানে ইনিশিয়ালাইজেশন সম্পূর্ণ হয়েছে বলে উল্লেখ করা থাকবে। আপনি যদি নেটওয়ার্ক অ্যাক্সেস আছে এমন কোনও এমুলেটরে আপনার অ্যাপ চালান, তাহলে Firebase কনসোল আপনাকে জানাবে যে আপনার অ্যাপ কানেকশন সম্পূর্ণ হয়েছে।

আপনি একদম রেডি! আপনার C++ অ্যাপ Firebase প্রোডাক্ট ব্যবহার করার জন্য রেজিস্টার ও কনফিগার করা আছে।

উপলভ্য লাইব্রেরি

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

Apple প্ল্যাটফর্মের জন্য উপলভ্য লাইব্রেরি

মনে রাখবেন, Android-এর জন্য C++ লাইব্রেরি এই সেট-আপ পৃষ্ঠার Android ভার্সনে তালিকাভুক্ত করা আছে।

প্রতিটি Firebase প্রোডাক্টের আলাদা আলাদা নির্ভরতা আছে। আপনার Podfile এবং C++ প্রোজেক্টে, Firebase-এর কাঙ্ক্ষিত প্রোডাক্টের জন্য তালিকাভুক্ত সব নির্ভরতা যোগ করতে ভুলবেন না।

প্রতিটি Firebase প্রোডাক্ট শুধুমাত্র Apple OS প্ল্যাটফর্মের (iOS, tvOS ইত্যাদি) একটি বাছাই করা অংশেই কাজ করতে পারে। কোন কোন প্ল্যাটফর্মে প্রতিটি লাইব্রেরি কাজ করে তা চেক করুন C++ ও Firebase সম্পর্কে আরও জানুন।

Firebase প্রোডাক্ট ফ্রেমওয়ার্ক ও পড
Analytics (প্রয়োজনীয়) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.19.0'
App Check (প্রয়োজনীয়) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.19.0'
Authentication (প্রয়োজনীয়) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.19.0'
Cloud Firestore (প্রয়োজনীয়) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.19.0'
pod 'FirebaseAuth', '12.19.0'
Cloud Functions (প্রয়োজনীয়) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.19.0'
Cloud Messaging (প্রয়োজনীয়) firebase.framework
firebase_messaging.framework
(সাজেস্ট করা হয়েছে) firebase_analytics.framework

pod 'FirebaseMessaging', '12.19.0'
(সাজেস্ট করা হয়েছে) pod 'FirebaseAnalytics', '12.19.0'
Cloud Storage (প্রয়োজনীয়) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.19.0'
Realtime Database (প্রয়োজনীয়) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.19.0'
Remote Config (প্রয়োজনীয়) firebase.framework
firebase_remote_config.framework
(সাজেস্ট করা হয়েছে) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.19.0'
(সাজেস্ট করা হয়েছে) pod 'FirebaseAnalytics', '12.19.0'
পুরনো বা কাজ করে না এমন লাইব্রেরি
Dynamic Links (প্রয়োজনীয়) firebase.framework
firebase_dynamic_links.framework
(সাজেস্ট করা হয়েছে) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.19.0'
(সাজেস্ট করা হয়েছে) pod 'FirebaseAnalytics', '12.19.0'

মোবাইল সেট-আপের জন্য অতিরিক্ত তথ্য

মেথড সোয়াজলিং

iOS-এ, কিছু অ্যাপ্লিকেশন ইভেন্টের (যেমন, URL খোলা এবং বিজ্ঞপ্তি পাওয়া) জন্য আপনার অ্যাপ্লিকেশন ডেলিগেটকে নির্দিষ্ট মেথড প্রয়োগ করতে হবে। যেমন, বিজ্ঞপ্তি পাওয়ার জন্য আপনার অ্যাপ্লিকেশনের প্রতিনিধিকে application:didReceiveRemoteNotification: প্রয়োগ করতে হতে পারে। কারণ, প্রতিটি iOS অ্যাপ্লিকেশনের নিজস্ব অ্যাপ ডেলিগেট থাকে, Firebase মেথড সুইজলিং ব্যবহার করে, যা একটি মেথডের পরিবর্তে অন্য একটি মেথড ব্যবহার করার অনুমতি দেয়। এর ফলে, আপনি হয়ত যেসব হ্যান্ডলার প্রয়োগ করেছেন, তার সাথে সাথে Firebase-ও নিজস্ব হ্যান্ডলার অ্যাটাচ করতে পারে।

Dynamic Links এবং Cloud Messaging লাইব্রেরিকে মেথড সোয়াজলিং ব্যবহার করে অ্যাপ্লিকেশন ডেলিগেটে হ্যান্ডলার অ্যাটাচ করতে হবে। আপনি এইসব Firebase প্রোডাক্টের কোনওটি ব্যবহার করলে, লোড করার সময়, Firebase আপনার AppDelegate ক্লাস শনাক্ত করবে এবং এতে প্রয়োজনীয় পদ্ধতি সোয়াজল করবে, আপনার বিদ্যমান পদ্ধতি প্রয়োগে কল ব্যাক চেইন করবে।

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

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

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

    1. CMake-এর জন্য আপনার C++ প্রোজেক্ট কনফিগার করুন।
    2. Firebase প্রোজেক্ট তৈরি করুন
    3. Firebase-এ আপনার অ্যাপ (iOS বা Android) রেজিস্টার করুন
    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

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

Realtime Database ডেস্কটপ

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

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

Windows লাইব্রেরি

Windows-এর জন্য, নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে লাইব্রেরি ভার্সন প্রদান করা হয়:

  • বিল্ড প্ল্যাটফর্ম: 32-বিট (x86) বনাম 64-বিট (x64) মোড
  • Windows রানটাইম এনভায়রনমেন্ট: মাল্টিথ্রেডেড / MT বনাম মাল্টিথ্রেডেড DLL /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)-এর জন্য, ৬৪-বিট (x86_64) প্ল্যাটফর্মের লাইব্রেরি ভার্সন প্রদান করা হয়। আপনার সুবিধার জন্য ফ্রেমওয়ার্কও প্রদান করা হয়।

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

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

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

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

Linux লাইব্রেরি

Linux-এর জন্য, ৩২-বিট (i386) এবং ৬৪-বিট (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 ডিফাইন করুন।

পরবর্তী ধাপ