এই পৃষ্ঠায় Cloud Firestore ডেটাবেস কীভাবে তৈরি, আপডেট ও মুছে ফেলতে হয় তা বর্ণনা করা হয়েছে। আপনি প্রতিটি প্রোজেক্টে একাধিক Cloud Firestore ডেটাবেস তৈরি করতে পারবেন। আপনি প্রোডাকশন ও টেস্টিং এনভায়রনমেন্ট সেট-আপ করতে, গ্রাহকের ডেটা আলাদা করতে এবং ডেটা রিজিওনালাইজেশনের জন্য একাধিক ডেটাবেস ব্যবহার করতে পারবেন।
ফ্রি টিয়ার ব্যবহার
Cloud Firestore ফ্রি টিয়ার অফার করে যার মাধ্যমে আপনি কোনও খরচ ছাড়াই শুরু করতে পারবেন।
প্রজেক্ট পিছু শুধুমাত্র একটি Cloud Firestore ডেটাবেসের ক্ষেত্রে ফ্রি টিয়ার প্রযোজ্য হয়। ফ্রি টিয়ার ডেটাবেস ছাড়া কোনও প্রোজেক্টে তৈরি করা প্রথম ডেটাবেসটি ফ্রি টিয়ার পাবে। ফ্রি টিয়ার প্রয়োগ করা ডেটাবেস মুছে দেওয়া হলে, পরবর্তী যে ডেটাবেস তৈরি করা হবে সেটি ফ্রি টিয়ার পাবে।
শুরু করার আগে
ডেটাবেস তৈরি করার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি সম্পূর্ণ করতে হবে:
-
আপনি আগে থেকে না করে থাকলে, একটি Firebase প্রোজেক্ট তৈরি করুন: Firebase কনসোলে, প্রোজেক্ট যোগ করুন বিকল্পে ক্লিক করুন, তারপর Firebase প্রোজেক্ট তৈরি করতে বা আগে থেকে থাকা Google Cloud প্রোজেক্টে Firebase পরিষেবা যোগ করতে অন-স্ক্রিন নির্দেশাবলী অনুসরণ করুন।
- পরবর্তী বিভাগে যেমন বর্ণনা করা হয়েছে সেই অনুযায়ী উপযুক্ত পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট ভূমিকা অ্যাসাইন করুন।
প্রয়োজনীয় ভূমিকা
ডেটাবেস তৈরি ও ম্যানেজ করতে, আপনার Owner বা Datastore Owner
পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট ভূমিকা থাকতে হবে। এইসব ভূমিকা প্রয়োজনীয় অনুমতি প্রদান করে।
প্রয়োজনীয় অনুমতি
ডেটাবেস ম্যানেজ করতে, আপনার নিম্নলিখিত অনুমতি থাকতে হবে:
- ডেটাবেস তৈরি করুন:
datastore.databases.create - ডেটাবেস কনফিগারেশন পড়ুন:
datastore.databases.getMetadata - ডেটাবেস কনফিগার করুন:
datastore.databases.update - ডেটাবেস মুছুন:
datastore.databases.delete - ডেটাবেস ক্লোন করুন:
datastore.databases.clone
একটি ডেটাবেস তৈরি করুন
Cloud Firestore ডেটাবেস তৈরি করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:
Firebase কনসোল
-
Firebase কনসোলে, Firestore Database পৃষ্ঠায় যান।
- ডেটাবেস যোগ করুন বিকল্পে ক্লিক করুন।
- Enterprise সংস্করণ বেছে নিন। পরবর্তী বিকল্পে ক্লিক করুন।
- MongoDB-এর সাথে মানানসই Firestore বেছে নিন।
- ডেটাবেসের আইডি লিখুন।
- আপনার ডেটাবেসের জন্য একটি লোকেশন বেছে নিন।
- তৈরি করুন বিকল্পে ক্লিক করুন।
Firebase CLI
firebase firestore:databases:create --edition enterprise DATABASE_ID \n--location=LOCATION \n[--firestore-data-access FIRESTORE_ACCESS] \n[--mongodb-compatible-data-access MONGODB_ACCESS] \n[--realtime-updates REALTIME_UPDATES]
নিম্নলিখিতগুলি পরিবর্তন করুন:
- DATABASE_ID: একটি সঠিক ডেটাবেসের আইডি।
- LOCATION: Cloud Firestore মাল্টি-রিজিয়ন বা রিজিয়নের নাম।
- FIRESTORE_ACCESS: হয়
ENABLEDঅথবাDISABLED। ডিফল্ট হিসেবেENABLEDসেট করা থাকে। - MONGODB_ACCESS: হয়
ENABLEDঅথবাDISABLED। ডিফল্ট হিসেবেDISABLEDসেট করা থাকে। - REALTIME_UPDATES: হয়
ENABLEDঅথবাDISABLED।firestore-data-accessচালু থাকলে ডিফল্ট হিসেবেENABLEDসেট করা হয়।
gcloud CLI
gcloud firestore databases create
কমান্ড ব্যবহার করে --edition=enterprise সেট করুন।
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-mongodb-compatible-data-access
নিম্নলিখিতগুলি পরিবর্তন করুন:
- DATABASE_ID: একটি সঠিক ডেটাবেসের আইডি।
- LOCATION: Cloud Firestore মাল্টি-রিজিয়ন বা রিজিয়নের নাম।
মুছে ফেলা থেকে সুরক্ষা চালু করতে, --delete-protection ফ্ল্যাগ যোগ করুন।
আপনি এই সেটিং বন্ধ না করা পর্যন্ত, মুছে ফেলা থেকে সুরক্ষিত রাখার সুবিধা চালু থাকা কোনও ডেটাবেস
মুছে ফেলতে পারবেন না। ডিফল্ট হিসেবে এই সেটিং বন্ধ করা থাকে।
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
ডেটাবেসে ট্যাগ
যোগ করতে, --tags
ফ্ল্যাগ ব্যবহার করুন। যেমন:
--tags=123/environment=production,123/costCenter=marketing--tags=tagKeys/333=tagValues/444
Terraform
google_firestore_database
রিসোর্স ব্যবহার করুন এবং database_edition-কে ENTERPRISE-এ সেট করুন
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
নিম্নলিখিতগুলি পরিবর্তন করুন:
- DATABASE_ID: একটি সঠিক ডেটাবেসের আইডি।
- LOCATION: Cloud Firestore মাল্টি-রিজিয়ন বা রিজিয়নের নাম।
- DELETE_PROTECTION_ENABLEMENT: হয়
DELETE_PROTECTION_ENABLEDঅথবাDELETE_PROTECTION_DISABLED।
মুছে ফেলা থেকে সুরক্ষা চালু করতে, delete_protection_state-কে DELETE_PROTECTION_ENABLED-এ সেট করুন।
আপনি এই সেটিং বন্ধ না করা পর্যন্ত
মুছে ফেলা থেকে সুরক্ষিত ডেটাবেস মুছে ফেলতে পারবেন না। ডিফল্ট হিসেবে এই সেটিং বন্ধ করা থাকে।
ডেটাবেসের আইডি
সঠিক ডেটাবেস আইডির মধ্যে সেইসব আইডি অন্তর্ভুক্ত থাকে যেগুলি নিম্নলিখিত শর্ত মেনে চলে:
- শুধুমাত্র অক্ষর, সংখ্যা ও হাইফেন (
-) অক্ষর অন্তর্ভুক্ত করে। - অক্ষরগুলি ছোট হাতের হতে হবে।
- প্রথম অক্ষরটি অবশ্যই একটি বর্ণ হতে হবে।
- শেষ অক্ষরটি অবশ্যই কোনও বর্ণ বা সংখ্যা হতে হবে।
- কমপক্ষে ৪টি অক্ষর।
- সর্বাধিক ৬৩ অক্ষরের মধ্যে লিখতে হবে।
- UUID বা UUID-এর মতো দেখতে কোনও আইডি ব্যবহার করা যাবে না। যেমন,
f47ac10b-58cc-0372-8567-0e02b2c3d479-এর মতো আইডি ব্যবহার করবেন না।
আপনি কোনও ডেটাবেস মুছে দিলে, ৫ মিনিট না হওয়া পর্যন্ত ডেটাবেসের আইডি অবিলম্বে আবার ব্যবহার করতে পারবেন না।
সুরক্ষা মুছে দিন
কোনও ডেটাবেস ভুলবশত মুছে ফেলা আটকাতে, 'মুছে ফেলা থেকে সুরক্ষা' ফিচার ব্যবহার করুন। ডিলিট করা থেকে সুরক্ষা নিম্নলিখিত উপায়ে কাজ করে:
- 'মুছে ফেলা থেকে সুরক্ষা' ফিচার বন্ধ না করা পর্যন্ত আপনি 'মুছে ফেলা থেকে সুরক্ষা' ফিচার চালু থাকা কোনও ডেটাবেস মুছতে পারবেন না।
- ডিফল্ট হিসেবে মুছে ফেলা থেকে সুরক্ষা বন্ধ করা থাকে।
- আপনি ডেটাবেস তৈরি করার সময় মুছে ফেলা থেকে সুরক্ষা চালু করতে পারেন অথবা মুছে ফেলা থেকে সুরক্ষা চালু করতে ডেটাবেস কনফিগারেশন আপডেট করতে পারেন।
ডেটাবেসের তালিকা
আপনার ডেটাবেসের তালিকা তৈরি করতে নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:
Firebase কনসোল
-
Firebase কনসোলে, Firestore Database পৃষ্ঠায় যান।
- প্রোজেক্টের সব ডেটাবেস দেখতে Cloud Firestore বিকল্পে ক্লিক করুন।
gcloud CLI
আপনার প্রোজেক্টের সব ডেটাবেসের তালিকা দেখতে
gcloud firestore databases list
কমান্ড ব্যবহার করুন।
gcloud firestore databases list
ডেটাবেসের বিবরণ দেখুন
একটি ডেটাবেস সম্পর্কে বিস্তারিত তথ্য দেখতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:
Firebase কনসোল
-
Firebase কনসোলে, Firestore Database পৃষ্ঠায় যান।
- ডেটাবেসের তালিকা থেকে একটি ডেটাবেস বেছে নিন।
gcloud CLI
gcloud firestore databases describe কমান্ড ব্যবহার করুন:
gcloud firestore databases describe --database=DATABASE_ID
DATABASE_ID-এর পরিবর্তে ডেটাবেসের আইডি লিখুন।
ডেটাবেস কনফিগারেশন আপডেট করুন
কোনও ডেটাবেসের কনফিগারেশন সেটিংস আপডেট করতে, gcloud firestore databases update
কমান্ড ব্যবহার করুন।
মুছে দেওয়া সংক্রান্ত সুরক্ষা পরিবর্তন, চালু বা বন্ধ করতে এই কমান্ড ব্যবহার করুন।
মুছে ফেলা থেকে সুরক্ষা সংক্রান্ত সেটিং আপডেট করুন
কোনও ডেটাবেসে মুছে ফেলা সংক্রান্ত সুরক্ষা চালু করতে, --delete-protection ফ্ল্যাগ সহ
gcloud firestore databases update
কমান্ড ব্যবহার করুন। যেমন:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
DATABASE_ID-এর পরিবর্তে ডেটাবেসের আইডি লিখুন।
কোনও ডেটাবেসে মুছে ফেলা সংক্রান্ত সুরক্ষা বন্ধ করতে, --no-delete-protection ফ্ল্যাগ সহ
gcloud firestore databases update
কমান্ড ব্যবহার করুন। যেমন:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
DATABASE_ID-এর পরিবর্তে ডেটাবেসের আইডি লিখুন।
ডেটাবেস মুছে দেওয়া
ডেটাবেস মুছে ফেলতে, কনসোল বা কমান্ড-লাইন টুল ব্যবহার করুন। ডেটাবেস মুছে ফেলার জন্য কোনও চার্জ নেওয়া হয় না।
ডেটাবেসে মুছে ফেলার সুরক্ষা সেটিং চালু করা থাকলে, আপনাকে প্রথমে মুছে ফেলার সুরক্ষা বন্ধ করতে হবে।
Firebase কনসোল
-
Firebase কনসোলে, Firestore Database পৃষ্ঠায় যান।
- আপনি যে ডেটাবেস মুছতে চান সেটি বেছে নিন।
- আরও দেখুন বিকল্পে ক্লিক করুন।
- ডেটাবেস মুছে দিতে মুছে দিন বিকল্পে ক্লিক করুন।
gcloud CLI
`gcloud firestore databases delete` কমান্ড ব্যবহার করুন।
gcloud firestore databases delete --database=DATABASE_ID
মুছে ফেলার জন্য DATABASE_ID-এর পরিবর্তে ডেটাবেসের আইডি লিখুন।
ডেটাবেস ক্লোন করা
আপনি একটি নতুন ডেটাবেসে বেছে নেওয়া টাইমস্ট্যাম্পে আগে থেকে থাকা ডেটাবেস ক্লোন করতে পারবেন:
ক্লোন করা ডেটাবেস হল একটি নতুন ডেটাবেস যা সোর্স ডেটাবেসের মতো একই লোকেশনে তৈরি করা হবে।
ক্লোন তৈরি করতে, Cloud Firestore সোর্স ডেটাবেসের পয়েন্ট-ইন-টাইম রিকভারি (PITR) ডেটা ব্যবহার করে। ক্লোন করা ডেটাবেসে সব ডেটা ও ইনডেক্স অন্তর্ভুক্ত থাকে।
ডিফল্ট হিসেবে, ক্লোন করা ডেটাবেস সোর্স ডেটাবেসের মতোই এনক্রিপ্ট করা হবে, Google-এর ডিফল্ট এনক্রিপশন বা CMEK এনক্রিপশন ব্যবহার করে। আপনি অন্য কোনও এনক্রিপশনের ধরন নির্দিষ্ট করতে পারেন অথবা CMEK এনক্রিপশনের জন্য অন্য কোনও 'কী' ব্যবহার করতে পারেন।
টাইমস্ট্যাম্পে এক মিনিটের গ্র্যানুলারিটি থাকে এবং এটি অতীতের একটি নির্দিষ্ট সময়কে উল্লেখ করে, যা PITR উইন্ডো দ্বারা নির্ধারিত সময়সীমার মধ্যে পড়ে:
- আপনার ডেটাবেসের জন্য PITR চালু করা থাকলে, আপনি গত ৭ দিনের (বা PITR ৭ দিনের কম সময় আগে চালু করা হলে, তার কম সময়ের) যেকোনও মিনিট বেছে নিতে পারবেন।
- PITR চালু করা না থাকলে, আপনি গত এক ঘণ্টার মধ্যে যেকোনও মিনিট বেছে নিতে পারবেন।
- আপনি বেছে নিতে পারেন এমন সবচেয়ে পুরনো টাইমস্ট্যাম্প আপনার ডেটাবেসের বিবরণে চেক করতে পারবেন।
Google Cloud কনসোল
Google Cloud কনসোলে, ডেটাবেস পৃষ্ঠায় যান।
আপনি যে ডেটাবেস ক্লোন করতে চান, সেটির জন্য টেবিল সারিতে আরও দেখুন বিকল্পে ক্লিক করুন। ক্লোন করুন বিকল্পে ক্লিক করুন। ক্লোন তৈরি করুন ডায়ালগ দেখা যাবে।
ক্লোন তৈরি করুন ডায়ালগে, ডেটাবেস ক্লোন করার জন্য প্যারামিটার প্রদান করুন:
ক্লোনকে একটি আইডি দিন ফিল্ডে, নতুন ক্লোন করা ডেটাবেসের জন্য একটি ডেটাবেসের আইডি লিখুন। এই ডেটাবেসের আইডি আগে থেকে থাকা কোনও ডেটাবেসের সাথে যুক্ত থাকলে চলবে না।
ক্লোন করুন ফিল্ডে, ক্লোন করার জন্য একটি সময় বেছে নিন। বেছে নেওয়া সময়টি মিনিট গ্র্যানুলারিটিতে PITR টাইমস্ট্যাম্পের সাথে সম্পর্কিত।
ক্লোন তৈরি করুন বিকল্পে ক্লিক করুন।
gcloud
ডেটাবেস ক্লোন করতে
gcloud firestore databases clone
কমান্ড ব্যবহার করুন:
gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
নিম্নলিখিতগুলি পরিবর্তন করুন:
SOURCE_DATABASE: আগে থেকে থাকা ডেটাবেসের নাম যা আপনি ক্লোন করতে চান। নামটি
projects/PROJECT_ID/databases/SOURCE_DATABASE_IDফর্ম্যাট ব্যবহার করে।PITR_TIMESTAMP: মিনিট গ্র্যানুলারিটিতে RFC 3339 ফর্ম্যাটে PITR টাইমস্ট্যাম্প। যেমন:
2025-06-01T10:20:00.00Zবা2025-06-01T10:30:00.00-07:00।DESTINATION_DATABASE_ID: নতুন ক্লোন করা ডেটাবেসের জন্য ডেটাবেসের আইডি। এই ডেটাবেসের আইডি কোনও আগে থেকে থাকা ডেটাবেসের সাথে যুক্ত থাকলে চলবে না।
উদাহরণ:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
ডেটাবেস ক্লোন করার সময় আপনি কিছু ট্যাগের সাথে বাইন্ড করতে চাইলে, --tags ফ্ল্যাগ সহ আগের কমান্ড ব্যবহার করুন, এটি বাইন্ড করার জন্য ট্যাগের KEY=VALUE পেয়ারের একটি ঐচ্ছিক তালিকা।
উদাহরণ:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2
ডিফল্ট হিসেবে, ক্লোন করা ডেটাবেসে সোর্স ডেটাবেসের মতো একই এনক্রিপশন কনফিগারেশন
থাকবে। এনক্রিপশন কনফিগারেশন পরিবর্তন করতে, --encryption-type আর্গুমেন্ট ব্যবহার করুন:
- (ডিফল্ট)
use-source-encryption: সোর্স ডেটাবেসের মতো একই এনক্রিপশন কনফিগারেশন ব্যবহার করুন। google-default-encryption: Google-এর ডিফল্ট এনক্রিপশন ব্যবহার করুন।customer-managed-encryption: CMEK এনক্রিপশন ব্যবহার করুন।--kms-key-nameআর্গুমেন্টে কী আইডি উল্লেখ করুন।
ক্লোন করা ডেটাবেসের জন্য CMEK এনক্রিপশন কীভাবে কনফিগার করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
প্রতিটি ডেটাবেসের জন্য অ্যাক্সেস সংক্রান্ত অনুমতি কনফিগার করুন
আপনি পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট শর্তাবলী ব্যবহার করে প্রতিটি ডেটাবেস লেভেলে অ্যাক্সেসের অনুমতি কনফিগার করতে পারবেন। নিম্নলিখিত উদাহরণগুলি এক বা একাধিক ডেটাবেসের জন্য শর্তসাপেক্ষ অ্যাক্সেস অ্যাসাইন করতে Google Cloud CLI ব্যবহার করে। এছাড়াও, আপনি Google Cloud কনসোলে 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: একটি ইমেল আইডি যা একটি নির্দিষ্ট অ্যাকাউন্টের প্রতিনিধিত্ব করে। যেমন,alice@example.com।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: একটি ইমেল আইডি যা একটি নির্দিষ্ট অ্যাকাউন্টের প্রতিনিধিত্ব করে। যেমন,alice@example.com।DATABASE_ID: ডেটাবেসের আইডি।TITLE: এক্সপ্রেশনের জন্য ঐচ্ছিক শীর্ষক।DESCRIPTION: এক্সপ্রেশনের ঐচ্ছিক বিবরণ।
প্রদত্ত মেম্বার ও ভূমিকার জন্য নীতি সরান
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
নিম্নলিখিতগুলি সেট করুন:
PROJECT_ID: আপনার প্রোজেক্ট আইডিEMAIL: ইমেল আইডি যা নির্দিষ্ট অ্যাকাউন্টকে বোঝায়। যেমন,alice@example.com।
সীমাবদ্ধতা
প্রতি প্রোজেক্টে সর্বাধিক ১০০টি ডেটাবেস থাকতে পারে। এই সীমা বাড়ানোর অনুরোধ করতে আপনি সহায়তা টিমের সাথে যোগাযোগ করতে পারেন।
এর পরে কী করতে হবে
- কুইকস্টার্ট: ডেটাবেস তৈরি করে সেটির সাথে কানেক্ট করুন রান করুন।
- আচরণগত পার্থক্য সম্পর্কে জানুন।
- Cloud Firestore-এর জন্য Cloud Monitoring মেট্রিক সম্পর্কে জানুন।