ডাটাবেস পরিচালনা করুন

এই পৃষ্ঠাটি Cloud Firestore ডেটাবেস তৈরি, আপডেট এবং মুছে ফেলার বর্ণনা দেয়৷ আপনি প্রতি প্রকল্পে একাধিক Cloud Firestore ডেটাবেস তৈরি করতে পারেন। আপনি উত্পাদন এবং পরীক্ষার পরিবেশ সেট আপ করতে, গ্রাহকের ডেটা বিচ্ছিন্ন করতে এবং ডেটা আঞ্চলিককরণের জন্য একাধিক ডাটাবেস ব্যবহার করতে পারেন।

(default) ডাটাবেস

আপনার অ্যাপের একাধিক ডাটাবেসের প্রয়োজন না হলে (default) ডাটাবেস ব্যবহার করুন।

আপনি যদি একটি ডাটাবেস নির্দিষ্ট না করেন, Cloud Firestore ক্লায়েন্ট লাইব্রেরি এবং Google ক্লাউড CLI ডিফল্টরূপে (default) ডাটাবেসের সাথে সংযুক্ত হয়।

আপনি শুধুমাত্র (default) ডাটাবেসের সাথে বিনামূল্যে কোটা ব্যবহার করতে পারেন।

প্রয়োজনীয় ভূমিকা

ডেটাবেস তৈরি এবং পরিচালনা করতে, আপনাকে Owner বা Datastore Owner পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকার প্রয়োজন। এই ভূমিকাগুলি প্রয়োজনীয় অনুমতি প্রদান করে।

প্রয়োজনীয় অনুমতি

ডাটাবেস পরিচালনা করতে, আপনাকে নিম্নলিখিত অনুমতিগুলির প্রয়োজন:

  • একটি ডাটাবেস তৈরি করুন: datastore.databases.create
  • ডাটাবেস কনফিগারেশন পড়ুন: datastore.databases.getMetadata
  • একটি ডাটাবেস কনফিগার করুন: datastore.databases.update
  • একটি ডাটাবেস মুছুন: datastore.databases.delete

একটি ডাটাবেস তৈরি করুন

একটি ডাটাবেস তৈরি করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    Firestore ডাটাবেসে যান

  2. যদি এটি আপনার প্রথম নামকৃত ডাটাবেস হয়, ডাটাবেস যোগ করুন ক্লিক করুন।
  3. অন্যথায়, (ডিফল্ট) ক্লিক করুন, তারপর ডাটাবেস যোগ করুন
  4. আপনার ডাটাবেস কনফিগার করুন। একটি ডাটাবেস আইডি লিখুন। একটি অবস্থান নির্বাচন করুন. ডেটাবেস তৈরি করুন ক্লিক করুন।
জিক্লাউড

gcloud firestore databases create কমান্ড ব্যবহার করুন।

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

--delete-protection হল একটি ঐচ্ছিক পতাকা যাতে মুছে ফেলার সুরক্ষা সক্রিয় করা যায়। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

ফায়ারবেস CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

--delete-protection অপসারণ সুরক্ষা সক্ষম করার জন্য একটি ঐচ্ছিক যুক্তি। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

টেরাফর্ম
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

delete_protection_state হল একটি ঐচ্ছিক আর্গুমেন্ট যা মুছে ফেলার সুরক্ষা সক্ষম করার জন্য। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

ডাটাবেস আইডি

বৈধ ডাটাবেস আইডিগুলি (default) এবং আইডিগুলি অন্তর্ভুক্ত করে যা নিম্নলিখিতগুলি মেনে চলে:

  • শুধুমাত্র অক্ষর, সংখ্যা এবং হাইফেন ( - ) অক্ষর অন্তর্ভুক্ত করে।
  • অক্ষরগুলো ছোট হাতের হতে হবে।
  • প্রথম অক্ষর একটি অক্ষর হতে হবে.
  • শেষ অক্ষরটি একটি অক্ষর বা সংখ্যা হতে হবে।
  • ন্যূনতম ৪টি অক্ষর।
  • সর্বোচ্চ ৬৩টি অক্ষর।
  • একটি UUID বা UUID অনুরূপ হতে হবে না. উদাহরণস্বরূপ, f47ac10b-58cc-0372-8567-0e02b2c3d479 এর মতো একটি আইডি ব্যবহার করবেন না।

আপনি একটি ডাটাবেস মুছে ফেললে, আপনি অবিলম্বে 5 মিনিটের পরে ডাটাবেস আইডি পুনরায় ব্যবহার করতে পারবেন না।

সুরক্ষা মুছুন

একটি ডাটাবেস দুর্ঘটনাক্রমে মুছে ফেলা রোধ করতে মুছে ফেলা সুরক্ষা ব্যবহার করুন। আপনি ডিলিট সুরক্ষা অক্ষম না করা পর্যন্ত আপনি ডিলিট সুরক্ষা সক্ষম করে একটি ডাটাবেস মুছতে পারবেন না। ডিফল্টরূপে সুরক্ষা মুছুন অক্ষম করা হয়। আপনি যখন ডাটাবেস তৈরি করেন তখন আপনি মুছে ফেলার সুরক্ষা সক্ষম করতে পারেন বা আপনি মুছে ফেলা সুরক্ষা সক্ষম করতে একটি ডাটাবেস কনফিগারেশন আপডেট করতে পারেন।

আপনার ডাটাবেসের জন্য Cloud Firestore Security Rules সেট আপ করুন

আপনার প্রতিটি ডাটাবেসে Cloud Firestore Security Rules স্থাপন করতে Firebase CLI ব্যবহার করুন। Cloud Firestore Security Rules পরিচালনা এবং স্থাপনের জন্য নির্দেশিকা পড়ুন৷

একটি ক্লায়েন্ট লাইব্রেরির সাথে একটি নামযুক্ত ডাটাবেস অ্যাক্সেস করুন

একটি নামযুক্ত ডাটাবেসের মধ্যে এমন কোনো ডাটাবেস অন্তর্ভুক্ত থাকে যার নাম নেই (default) । ডিফল্টরূপে, ফায়ারবেস SDK এবং Google API ক্লায়েন্ট লাইব্রেরিগুলি একটি প্রকল্পে (default) Cloud Firestore ডাটাবেসের সাথে সংযোগ করে৷ একটি নামযুক্ত ডাটাবেসের সাথে সংযুক্ত একটি ক্লায়েন্ট তৈরি করতে, যখন আপনি একটি ক্লায়েন্ট ইনস্ট্যান্টিয়েট করেন তখন ডাটাবেস আইডি সেট করুন।

তালিকা ডাটাবেস

আপনার ডাটাবেস তালিকাভুক্ত করতে নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

কনসোল

Google ক্লাউড কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

ডাটাবেসে যান

জিক্লাউড

আপনার প্রকল্পের সমস্ত ডাটাবেস তালিকাভুক্ত করতে gcloud firestore databases list কমান্ড ব্যবহার করুন।

gcloud firestore databases list
ফায়ারবেস CLI

আপনার প্রজেক্টের সমস্ত ডাটাবেস তালিকাভুক্ত করতে firebase firestore:databases:list কমান্ড ব্যবহার করুন।

firebase firestore:databases:list

ডাটাবেস বিবরণ দেখুন

একটি একক ডাটাবেস সম্পর্কে বিশদ দেখতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

জিক্লাউড

gcloud firestore databases describe কমান্ড ব্যবহার করুন:

gcloud firestore databases describe --database=DATABASE_ID
ফায়ারবেস CLI

firebase firestore:databases:get কমান্ড:

firebase firestore:databases:get DATABASE_ID

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

ডাটাবেস কনফিগারেশন আপডেট করুন

একটি ডাটাবেসের কনফিগারেশন সেটিংস আপডেট করতে, gcloud firestore databases update কমান্ড ব্যবহার করুন। ডিলিট সুরক্ষা সক্ষম বা অক্ষম করতে পরিবর্তন করতে এই কমান্ডটি ব্যবহার করুন।

মুছে ফেলা সুরক্ষা সেটিং আপডেট করুন

একটি ডাটাবেসে ডিলিট সুরক্ষা সক্ষম করতে, --delete-protection পতাকা সহ gcloud firestore databases update কমান্ড ব্যবহার করুন। যেমন:

জিক্লাউড
gcloud firestore databases update --database=DATABASE_ID --delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেসে ডিলিট সুরক্ষা নিষ্ক্রিয় করতে, --no-delete-protection পতাকা সহ gcloud firestore databases update কমান্ড ব্যবহার করুন। যেমন:

জিক্লাউড
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেস মুছুন

একটি ডাটাবেস মুছে ফেলতে, কনসোল বা কমান্ড-লাইন টুল ব্যবহার করুন।

যদি ডাটাবেসে ডিলিট সুরক্ষা সেটিং সক্রিয় থাকে, তাহলে আপনাকে প্রথমে ডিলিট সুরক্ষা অক্ষম করতে হবে।

যদি ডাটাবেসে App Engine অনুসন্ধান ডেটা বা ব্লব সত্তা থাকে, তাহলে আপনাকে প্রথমে সেই ডেটা মুছে ফেলতে হবে।

একটি ডাটাবেস মুছে দিলে সেই ডাটাবেসের জন্য কোনো Eventarc ট্রিগার স্বয়ংক্রিয়ভাবে মুছে যায় না। ট্রিগারটি ইভেন্টগুলি সরবরাহ করা বন্ধ করে তবে আপনি ট্রিগারটি মুছে না দেওয়া পর্যন্ত বিদ্যমান থাকবে৷

কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    Firestore ডাটাবেসে যান

  2. ডেটা ট্যাবে, ডাটাবেসের জন্য ডেটা টেবিল ভিউয়ের উপরে, ক্লিক করুন, তারপরে ডাটাবেস মুছুন নির্বাচন করুন।
  3. ডাটাবেস মুছে ফেলার জন্য নির্দেশাবলী অনুসরণ করুন.
জিক্লাউড

`gcloud firestore databases delete` কমান্ড ব্যবহার করুন।

gcloud firestore databases delete --database=DATABASE_ID

মুছে ফেলার জন্য ডাটাবেসের ID দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

প্রতি-ডাটাবেস অ্যাক্সেস অনুমতি কনফিগার করুন

আপনি প্রতি-ডাটাবেস স্তরে অ্যাক্সেসের অনুমতিগুলি কনফিগার করতে আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট শর্তাবলী ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণগুলি এক বা একাধিক ডেটাবেসের জন্য শর্তসাপেক্ষ অ্যাক্সেস বরাদ্দ করতে Google ক্লাউড CLI ব্যবহার করে৷ আপনি Google ক্লাউড কনসোলে IAM শর্তগুলিও সংজ্ঞায়িত করতে পারেন৷

বিদ্যমান IAM নীতিগুলি দেখুন৷

gcloud projects get-iam-policy PROJECT_ID

আপনার প্রকল্প আইডিতে PROJECT_ID সেট করুন।

একটি ডাটাবেসে অ্যাক্সেস মঞ্জুর করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

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

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, [email protected]
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

একটি ডাটাবেস ব্যতীত সকলকে অ্যাক্সেস প্রদান করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

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

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, [email protected]
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

প্রদত্ত সদস্য এবং ভূমিকার জন্য নীতিগুলি সরান৷

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

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

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, [email protected]

ক্লাউড মনিটরিং

Cloud Firestore মেট্রিক্স দুটি পর্যবেক্ষণ করা সংস্থানের অধীনে রিপোর্ট করা হয়েছে।

আপনি firestore.googleapis.com/Database এ দেখে ডাটাবেস স্তরে সামগ্রিক মেট্রিক্স পরিদর্শন করতে পারেন। firestore_instance অধীনে রিপোর্ট করা মেট্রিকগুলি প্রকল্প স্তরে একত্রিত করা হয়৷

সীমাবদ্ধতা

  • প্রতি প্রকল্পে আপনার সর্বাধিক 100টি ডাটাবেস থাকতে পারে। আপনি এই সীমা বৃদ্ধির অনুরোধ করতে সহায়তার সাথে যোগাযোগ করতে পারেন।
  • আপনি আপনার (default) ডাটাবেস মুছে ফেলতে পারবেন না যদি এতে কোনো GAE অনুসন্ধান ডেটা থাকে। GAE অনুসন্ধান ডেটা মুছে ফেলার জন্য অনুগ্রহ করে সূচী মুছে ফেলা এপিআই ব্যবহার করুন। আপনি যদি সম্প্রতি GAE অনুসন্ধান ডেটা মুছে ফেলে থাকেন, তাহলে ডাটাবেসটি মুছে ফেলার আগে একটি অপেক্ষার সময় থাকতে পারে।
  • আপনি আপনার (default) ডাটাবেস মুছতে পারবেন না যদি এতে কোনো ব্লব সত্তা থাকে। Blobstore ডেটা মুছে ফেলার জন্য অনুগ্রহ করে Blobstore delete api ব্যবহার করুন। আপনি Google ক্লাউড কনসোলে নিম্নলিখিত GQL ক্যোয়ারী চালিয়ে আপনার (default) ডাটাবেসে Blobstore ডেটা আছে কিনা তা পরীক্ষা করতে পারেন: SELECT * FROM __BlobInfo__
  • মুছে ফেলার 5 মিনিট পর আপনি একটি ডাটাবেস আইডি পুনরায় ব্যবহার করতে পারবেন না।
  • ক্লাউড ফাংশন v1 ফায়ারস্টোর নামের ডেটাবেস সমর্থন করে না। নামযুক্ত ডাটাবেসের জন্য ইভেন্ট কনফিগার করতে দয়া করে ক্লাউড ফায়ারস্টোর ট্রিগারস (২য় জেনার) ব্যবহার করুন।
  • Firestore ফাংশন ট্রিগার v1 এবং Firestore ইভেন্ট ট্রিগার ডাটাবেস মুছে ফেলার পরে কাজ করা বন্ধ করে দিতে পারে, এমনকি একই নামে একটি নতুন ডাটাবেস তৈরি করা হলেও।

এরপর কি