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

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

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

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

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


পূর্বশর্ত

  • নিম্নলিখিত ইনস্টল করুন:

    • Xcode 13.3.1 বা তার পরে
    • CocoaPods 1.12.0 বা তার পরে
  • নিশ্চিত করুন যে আপনার প্রকল্পটি নিম্নলিখিত প্ল্যাটফর্ম সংস্করণ বা তার পরে লক্ষ্য করে:

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

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

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

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

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

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

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

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

    আপনি যদি ইতিমধ্যেই আপনার Firebase প্রকল্পে একটি অ্যাপ যোগ করে থাকেন, তাহলে প্ল্যাটফর্মের বিকল্পগুলি প্রদর্শন করতে অ্যাপ যোগ করুন- এ ক্লিক করুন।

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

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

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

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

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

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

  3. অনুরোধ করা হলে, সমস্ত টার্গেটে কনফিগার ফাইল যোগ করতে নির্বাচন করুন।

আপনি Firebase কনসোলে সেট আপ করার কাজগুলি সম্পন্ন করেছেন৷ নিচে Firebase C++ SDK যোগ করা চালিয়ে যান।

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

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

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

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

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

    1. আপনার যদি ইতিমধ্যে একটি না থাকে তবে একটি পডফাইল তৈরি করুন:

      cd your-app-directory
      pod init

    2. আপনার পডফাইলে, ফায়ারবেস পড যোগ করুন যা আপনি আপনার অ্যাপে ব্যবহার করতে চান।

      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 Authentication ব্যবহার করতে, firebase_auth.framework যোগ করুন।

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

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

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

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

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

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

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

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

প্রতিটি ফায়ারবেস পণ্যের বিভিন্ন নির্ভরতা রয়েছে। আপনার Podfile এবং C++ প্রোজেক্টে কাঙ্ক্ষিত Firebase পণ্যের জন্য সমস্ত তালিকাভুক্ত নির্ভরতা যোগ করতে ভুলবেন না।

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

ফায়ারবেস পণ্য ফ্রেমওয়ার্ক এবং পড
AdMob (প্রয়োজনীয়) firebase.framework
firebase_admob.framework
(প্রয়োজনীয়) firebase_analytics.framework

pod 'FirebaseAdMob', '11.4.2'
(প্রয়োজনীয়) pod 'FirebaseAnalytics', '11.4.2'
Analytics (প্রয়োজনীয়) firebase.framework
firebase_analytics.framework

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

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

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

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

pod 'FirebaseFunctions', '11.4.2'
Cloud Messaging (প্রয়োজনীয়) firebase.framework
firebase_messaging.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'FirebaseMessaging', '11.4.2'
(প্রস্তাবিত) pod 'FirebaseAnalytics', '11.4.2'
Cloud Storage (প্রয়োজনীয়) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.4.2'
Dynamic Links (প্রয়োজনীয়) firebase.framework
firebase_dynamic_links.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.4.2'
(প্রস্তাবিত) pod 'FirebaseAnalytics', '11.4.2'
Realtime Database (প্রয়োজনীয়) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.4.2'
Remote Config (প্রয়োজনীয়) firebase.framework
firebase_remote_config.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.4.2'
(প্রস্তাবিত) pod 'FirebaseAnalytics', '11.4.2'

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

পদ্ধতি swizzling

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

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

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

আপনি যখন একটি গেম তৈরি করছেন, তখন আপনার গেমটিকে প্রথমে ডেস্কটপ প্ল্যাটফর্মে পরীক্ষা করা অনেক সহজ, তারপর ডেভেলপমেন্টের পরে মোবাইল ডিভাইসে স্থাপন এবং পরীক্ষা করা। এই কর্মপ্রবাহকে সমর্থন করার জন্য, আমরা 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 সংজ্ঞায়িত করুন।

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