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

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

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

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

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

পূর্বশর্ত

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

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

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

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

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

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

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

আপনার একটি ফায়ারবেস প্রজেক্ট হওয়ার পরে, আপনি এতে আপনার Apple অ্যাপ যোগ করতে পারেন।

একাধিক বিল্ড ভেরিয়েন্ট কীভাবে পরিচালনা করতে হয় তা সহ একটি Firebase প্রকল্পে অ্যাপ যোগ করার জন্য সর্বোত্তম অনুশীলন এবং বিবেচনার বিষয়ে আরও জানতে Firebase প্রকল্পগুলি বুঝতে দেখুন।

  1. ফায়ারবেস কনসোলে যান।

  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. আপনার পডফাইলে, ফায়ারবেস পডগুলি যোগ করুন যা আপনি আপনার অ্যাপে ব্যবহার করতে চান।

      বিশ্লেষণ সক্রিয় করা হয়েছে

      # Add the Firebase pod for Google Analytics
      pod 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      অ্যানালিটিক্স সক্ষম করা নেই

      # 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 'Firebase/Auth'
      pod 'Firebase/Database'
    3. পড ইনস্টল করুন, তারপর Xcode-এ .xcworkspace ফাইলটি খুলুন।

      pod install
      open your-app.xcworkspace

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

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

    1. Firebase C++ ফ্রেমওয়ার্ক firebase.framework যোগ করুন, যা যেকোনো Firebase পণ্য ব্যবহার করার জন্য প্রয়োজন

    2. প্রতিটি ফায়ারবেস পণ্যের জন্য ফ্রেমওয়ার্ক যোগ করুন যা আপনি ব্যবহার করতে চান। উদাহরণস্বরূপ, Firebase প্রমাণীকরণ ব্যবহার করতে, firebase_auth.framework যোগ করুন।

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

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

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

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

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

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

iOS এর জন্য উপলব্ধ লাইব্রেরি

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

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

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

pod 'Firebase/AdMob', '8.11.0'
(প্রয়োজনীয়) pod 'Firebase/Analytics', '8.11.0'
বিশ্লেষণ (প্রয়োজনীয়) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.11.0'
প্রমাণীকরণ (প্রয়োজনীয়) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.11.0'
ক্লাউড ফায়ারস্টোর (প্রয়োজনীয়) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.11.0'
pod 'Firebase/Auth', '8.11.0'
ক্লাউড ফাংশন (প্রয়োজনীয়) firebase.framework
firebase_functions.framework

pod 'Firebase/Functions', '8.11.0'
ক্লাউড মেসেজিং (প্রয়োজনীয়) firebase.framework
firebase_messaging.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'Firebase/Messaging', '8.11.0'
(প্রস্তাবিত) pod 'Firebase/Analytics', '8.11.0'
মেঘ স্টোরেজ (প্রয়োজনীয়) firebase.framework
firebase_storage.framework

pod 'Firebase/Storage', '8.11.0'
ডাইনামিক লিংক (প্রয়োজনীয়) firebase.framework
firebase_dynamic_links.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'Firebase/DynamicLinks', '8.11.0'
(প্রস্তাবিত) pod 'Firebase/Analytics', '8.11.0'
রিয়েলটাইম ডাটাবেস (প্রয়োজনীয়) firebase.framework
firebase_database.framework

pod 'Firebase/Database', '8.11.0'
রিমোট কনফিগারেশন (প্রয়োজনীয়) firebase.framework
firebase_remote_config.framework
(প্রস্তাবিত) firebase_analytics.framework

pod 'Firebase/RemoteConfig', '8.11.0'
(প্রস্তাবিত) pod 'Firebase/Analytics', '8.11.0'

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

পদ্ধতি swizzling

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

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

    1. আপনার FIREBASE_CPP_SDK_DIR পরিবেশ পরিবর্তনশীলটিকে আনজিপ করা Firebase C++ SDK-এর অবস্থানে সেট করুন।

    2. আপনার প্রজেক্টের 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 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 ব্যবহার করে)
প্রমাণীকরণ firebase_auth
(প্রয়োজনীয়) firebase_app
ক্লাউড ফায়ারস্টোর firebase_firestore
firebase_auth
firebase_app
ক্লাউড ফাংশন firebase_functions
(প্রয়োজনীয়) firebase_app
মেঘ স্টোরেজ firebase_storage
(প্রয়োজনীয়) firebase_app
রিয়েলটাইম ডাটাবেস firebase_database
(প্রয়োজনীয়) firebase_app
রিমোট কনফিগারেশন firebase_remote_config
(প্রয়োজনীয়) firebase_app

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

রিয়েলটাইম ডাটাবেস ডেস্কটপ

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

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

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

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

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

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

Windows-এ C++ ডেস্কটপ অ্যাপ তৈরি করার সময়, নিম্নলিখিত Windows SDK লাইব্রেরিগুলিকে আপনার প্রোজেক্টে লিঙ্ক করুন। আরও তথ্যের জন্য আপনার কম্পাইলার ডকুমেন্টেশনের সাথে পরামর্শ করুন।

ফায়ারবেস সি++ লাইব্রেরি উইন্ডোজ SDK লাইব্রেরি নির্ভরতা
প্রমাণীকরণ advapi32, ws2_32, crypt32
ক্লাউড ফায়ারস্টোর 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) প্ল্যাটফর্মের জন্য প্রদান করা হয়। ফ্রেমওয়ার্ক আপনার সুবিধার জন্য প্রদান করা হয়.

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

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

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

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

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

লিনাক্সের জন্য, 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 সংজ্ঞায়িত করুন।

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