C++-এর জন্য Firebase Realtime Database ব্যবহার শুরু করা

Firebase Realtime Database, NoSQL ক্লাউড ডেটাবেস ব্যবহার করে ডেটা সেভ ও সিঙ্ক করে। ডেটা রিয়েল-টাইমে সব ক্লায়েন্ট জুড়ে সিঙ্ক্রোনাইজ করা হয় এবং আপনার অ্যাপ অফলাইন হয়ে গেলেও উপলভ্য থাকে।

শুরু করার আগে

আপনি Firebase Realtime Database ব্যবহার করার আগে, আপনাকে এগুলি করতে হবে:

  • আপনার C++ প্রোজেক্ট রেজিস্টার করুন এবং Firebase ব্যবহার করার জন্য এটি কনফিগার করুন।

    আপনার C++ প্রোজেক্টে আগে থেকেই Firebase ব্যবহার করা হলে, এটি আগেই Firebase-এর জন্য রেজিস্টার ও কনফিগার করা হয়ে গেছে।

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

মনে রাখবেন, আপনার C++ প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা C++ প্রোজেক্ট (যেমন, আপনি কনসোল থেকে Firebase কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলি আপনার C++ প্রোজেক্টে সরান) দুটিতেই টাস্ক করতে হয়।

ডেটাবেস তৈরি করা

  1. Firebase কনসোলে, ডেটাবেস ও স্টোরেজ > রিয়েলটাইম ডেটাবেস বিকল্পে নেভিগেট করুন।

  2. ডেটাবেস তৈরি করুন বিকল্পে ক্লিক করুন।

  3. আপনার Firebase Security Rules-এর জন্য একটি শুরুর মোড বেছে নিন:

    টেস্ট মোড

    মোবাইল ও ওয়েব ক্লায়েন্ট লাইব্রেরি ব্যবহার শুরু করার জন্য ভালো, কিন্তু এর ফলে যেকোনও ব্যক্তি আপনার ডেটা পড়তে ও ওভাররাইট করতে পারবেন। পরীক্ষা করার পরে, Firebase রিয়েলটাইম ডেটাবেস নিয়ম সম্পর্কে জানুন বিভাগটি পর্যালোচনা করতে ভুলবেন না।

    ওয়েব, Apple বা Android SDK-এর মাধ্যমে শুরু করতে, testmode বেছে নিন।

    লক করা মোড

    মোবাইল ও ওয়েব ক্লায়েন্ট থেকে সব রিড ও রাইট অ্যাক্সেস প্রত্যাখ্যান করে। আপনার যাচাই করা অ্যাপ্লিকেশন সার্ভার এখনও আপনার ডেটাবেস অ্যাক্সেস করতে পারবে।

  4. ডেটাবেসের জন্য একটি লোকেশন বেছে নিন।

    ডেটাবেসের লোকেশন অনুযায়ী, নতুন ডেটাবেসের URL নিম্নলিখিত ফর্মগুলির মধ্যে একটিতে থাকবে:

    • DATABASE_NAME.firebaseio.com (us-central1-এ ডেটাবেসের জন্য)

    • DATABASE_NAME.REGION.firebasedatabase.app (অন্যান্য সব লোকেশনের ডেটাবেসের জন্য)

  5. হয়ে গেছে বিকল্পে ক্লিক করুন।

Realtime Database চালু করলে, এটি ক্লাউড API ম্যানেজার-এও API চালু করে দেয়।

firebase::App তৈরি ও ইনিশিয়ালাইজ করা

Realtime Database অ্যাক্সেস করার আগে, আপনাকে firebase::App তৈরি ও ইনিশিয়ালাইজ করতে হবে।

firebase::App-এর জন্য হেডার ফাইল যোগ করুন:

#include "firebase/app.h"

Android

JNI এনভায়রনমেন্ট এবং Java অ্যাক্টিভিটির jobject রেফারেন্স আর্গুমেন্ট হিসেবে পাস করে firebase::App তৈরি করুন:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS+

firebase::App তৈরি করুন:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

firebase::database::Database Class অ্যাক্সেস করা

firebase::database::Database হল Firebase Realtime Database C++ SDK-এর এন্ট্রি পয়েন্ট।

::firebase::database::Database *database = ::firebase::database::Database::GetInstance(app);

আপনার নিয়মের জন্য আপনি সর্বজনীন অ্যাক্সেস ব্যবহার করার বিকল্প বেছে নিলে, ডেটা সেভ করা ও ফিরিয়ে আনা সংক্রান্ত বিভাগে যেতে পারবেন।

সীমিত অ্যাক্সেস সেট-আপ করা

আপনি পাবলিক অ্যাক্সেস ব্যবহার করতে না চাইলে, ডেটাবেসে অ্যাক্সেস কন্ট্রোল করতে আপনার অ্যাপে Firebase Authentication যোগ করতে পারেন।

পরবর্তী ধাপ

জ্ঞাত সমস্যা

  • ডেস্কটপ প্ল্যাটফর্মে (Windows, Mac, Linux), Firebase C++ SDK আপনার ডেটাবেস অ্যাক্সেস করতে REST ব্যবহার করে। এই কারণে, ডেস্কটপে Query::OrderByChild() সহ আপনার ব্যবহার করা ইন্ডেক্স ঘোষণা করতে হবে নইলে আপনার লিসনার কাজ করবে না।
  • Realtime Database-এর ডেস্কটপ ওয়ার্কফ্লো ভার্সন অফলাইন বা পারসিস্টেন্স কাজ করে না।