डेटाबेस बनाना और उन्हें मैनेज करना

इस पेज पर, Cloud Firestore डेटाबेस बनाने, अपडेट करने, और मिटाने का तरीका बताया गया है. हर प्रोजेक्ट के लिए, एक से ज़्यादा Cloud Firestore डेटाबेस बनाए जा सकते हैं. एक से ज़्यादा डेटाबेस का इस्तेमाल, प्रोडक्शन और टेस्टिंग एनवायरमेंट सेट अप करने, ग्राहक के डेटा को अलग रखने, और डेटा को अलग-अलग इलाकों के हिसाब से बांटने के लिए किया जा सकता है.

फ़्री टियर का इस्तेमाल करना

Cloud Firestore फ़्री टियर की सुविधा देता है. इससे बिना किसी शुल्क के, का इस्तेमाल शुरू किया जा सकता है.

फ़्री टियर की सुविधा, हर प्रोजेक्ट के लिए सिर्फ़ एक Cloud Firestore डेटाबेस पर लागू होती है. किसी प्रोजेक्ट में, फ़्री टियर वाला डेटाबेस न होने पर, उसमें बनाया गया पहला डेटाबेस, फ़्री टियर की सुविधा के लिए चुना जाएगा. अगर फ़्री टियर की सुविधा वाला डेटाबेस मिटा दिया जाता है, तो बनाया गया अगला डेटाबेस, फ़्री टियर की सुविधा के लिए चुना जाएगा.

शुरू करने से पहले

डेटाबेस बनाने से पहले, आपको यह काम पूरा करना होगा:

  1. अगर आपने पहले से Firebase प्रोजेक्ट नहीं बनाया है, तो उसे बनाएं: Firebase कंसोल में, प्रोजेट जोड़ें पर क्लिक करें. इसके बाद, स्क्रीन पर दिए गए निर्देशों का पालन करके, Firebase प्रोजेक्ट बनाएं या मौजूदा Google Cloud प्रोजेक्ट में Firebase की सेवाएं जोड़ें.

  2. अगले सेक्शन में बताए गए तरीके से, Identity and Access Management की सही भूमिकाएं असाइन करें.

ज़रूरी भूमिकाएं

डेटाबेस बनाने और मैनेज करने के लिए, आपके पास Owner या Datastore Owner Identity and Access Management भूमिका होनी चाहिए. इन भूमिकाओं से, ज़रूरी अनुमतियां मिलती हैं.

ज़रूरी अनुमतियां

डेटाबेस मैनेज करने के लिए, आपके पास ये अनुमतियां होनी चाहिए:

  • डेटाबेस बनाना: datastore.databases.create
  • डेटाबेस का कॉन्फ़िगरेशन पढ़ना: datastore.databases.getMetadata
  • डेटाबेस कॉन्फ़िगर करना: datastore.databases.update
  • डेटाबेस मिटाना: datastore.databases.delete
  • डेटाबेस का क्लोन बनाना: datastore.databases.clone

डेटाबेस बनाना

Cloud Firestore डेटाबेस बनाने के लिए, इनमें से कोई एक तरीका अपनाएं:

Firebase कंसोल
  1. Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.

    Firestore डेटाबेस पर जाएं

  2. डेटाबेस जोड़ें पर क्लिक करें.
  3. Enterprise edition चुनें. अगला पर क्लिक करें.
  4. Firestore with MongoDB compatibility चुनें.
  5. डेटाबेस आईडी डालें.
  6. अपने डेटाबेस के लिए कोई जगह चुनें.
  7. बनाएं पर क्लिक करें.
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 सीएलआई

gcloud firestore databases create निर्देश का इस्तेमाल करें और --edition=enterprise सेट करें.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--enable-mongodb-compatible-data-access

इन्हें बदलें:

डेटाबेस को मिटाने से बचाने की सुविधा चालू करने के लिए, --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"
}

इन्हें बदलें:

डेटाबेस को मिटाने से बचाने की सुविधा चालू करने के लिए, delete_protection_state को DELETE_PROTECTION_ENABLED पर सेट करें. डेटाबेस को मिटाने से बचाने की सुविधा चालू होने पर, इस सेटिंग को बंद किए बिना डेटाबेस को मिटाया नहीं जा सकता. यह सेटिंग डिफ़ॉल्ट रूप से बंद होती है.

डेटाबेस आईडी

मान्य डेटाबेस आईडी में वे आईडी शामिल होते हैं जो इन शर्तों को पूरा करते हैं:

  • इसमें सिर्फ़ अक्षर, संख्याएं, और हाइफ़न (-) शामिल होते हैं.
  • अक्षर, लोअर केस में होने चाहिए.
  • पहला वर्ण अक्षर होना चाहिए.
  • आखिरी वर्ण अक्षर या संख्या होनी चाहिए.
  • कम से कम चार वर्ण होने चाहिए.
  • ज़्यादा से ज़्यादा 63 वर्ण होने चाहिए.
  • यह यूयूआईडी नहीं होना चाहिए या यूयूआईडी जैसा नहीं दिखना चाहिए. उदाहरण के लिए, f47ac10b-58cc-0372-8567-0e02b2c3d479 जैसा आईडी इस्तेमाल न करें.

किसी डेटाबेस को मिटाने के बाद, पांच मिनट तक उसके आईडी का दोबारा इस्तेमाल नहीं किया जा सकता.

डेटाबेस को मिटाने से बचाने की सुविधा

डेटाबेस को गलती से मिटने से बचाने के लिए, डेटाबेस को मिटाने से बचाने की सुविधा का इस्तेमाल करें. डेटाबेस को मिटाने से बचाने की सुविधा इस तरह काम करती है:

  • डेटाबेस को मिटाने से बचाने की सुविधा चालू होने पर, इस सेटिंग को बंद किए बिना डेटाबेस को मिटाया नहीं जा सकता.
  • डेटाबेस को मिटाने से बचाने की सुविधा डिफ़ॉल्ट रूप से बंद होती है.
  • डेटाबेस बनाते समय, डेटाबेस को मिटाने से बचाने की सुविधा चालू की जा सकती है. इसके अलावा, डेटाबेस को मिटाने से बचाने की सुविधा चालू करने के लिए, डेटाबेस के कॉन्फ़िगरेशन को अपडेट किया जा सकता है.

डेटाबेस की सूची देखना

अपने डेटाबेस की सूची देखने के लिए, इनमें से कोई एक तरीका अपनाएं:

Firebase कंसोल
  1. Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.

    Firestore डेटाबेस पर जाएं

  2. प्रोजेक्ट के सभी डेटाबेस देखने के लिए, Cloud Firestore पर क्लिक करें.
gcloud सीएलआई

अपने प्रोजेक्ट के सभी डेटाबेस की सूची देखने के लिए, gcloud firestore databases list निर्देश का इस्तेमाल करें.

gcloud firestore databases list

डेटाबेस की जानकारी देखना

किसी एक डेटाबेस के बारे में जानकारी देखने के लिए, इनमें से कोई एक तरीका अपनाएं:

Firebase कंसोल
  1. Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.

    Firestore डेटाबेस पर जाएं

  2. डेटाबेस की सूची में से कोई डेटाबेस चुनें.
gcloud सीएलआई

gcloud firestore databases describe निर्देश का इस्तेमाल करें:

gcloud firestore databases describe --database=DATABASE_ID

DATABASE_ID की जगह, कोई डेटाबेस आईडी डालें.

डेटाबेस का कॉन्फ़िगरेशन अपडेट करना

किसी डेटाबेस की कॉन्फ़िगरेशन सेटिंग अपडेट करने के लिए, gcloud firestore databases update निर्देश का इस्तेमाल करें.

डेटाबेस को मिटाने से बचाने की सुविधा को चालू या बंद करने या उसकी सेटिंग में बदलाव करने के लिए, इस निर्देश का इस्तेमाल करें.

डेटाबेस को मिटाने से बचाने की सेटिंग अपडेट करना

किसी डेटाबेस को मिटाने से बचाने की सुविधा चालू करने के लिए, gcloud firestore databases update निर्देश का इस्तेमाल करें. इसके साथ, --delete-protection फ़्लैग भी जोड़ें. उदाहरण के लिए:

gcloud सीएलआई
gcloud firestore databases update --database=DATABASE_ID --delete-protection

DATABASE_ID की जगह, कोई डेटाबेस आईडी डालें.

किसी डेटाबेस को मिटाने से बचाने की सुविधा बंद करने के लिए, gcloud firestore databases update निर्देश का इस्तेमाल करें. इसके साथ, --no-delete-protection फ़्लैग भी जोड़ें. उदाहरण के लिए:

gcloud सीएलआई
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

DATABASE_ID की जगह, कोई डेटाबेस आईडी डालें.

डेटाबेस मिटाना

डेटाबेस मिटाने के लिए, कंसोल या कमांड-लाइन टूल का इस्तेमाल करें. डेटाबेस मिटाने पर, मिटाने की कार्रवाइयों के लिए कोई शुल्क नहीं लगता.

अगर डेटाबेस को मिटाने से बचाने की सेटिंग चालू है, तो आपको पहले मिटाने से बचाने की सुविधा बंद करनी होगी.

Firebase कंसोल
  1. Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.

    Firestore डेटाबेस पर जाएं

  2. वह डेटाबेस चुनें जिसे मिटाना है.
  3. ज़्यादा देखें पर क्लिक करें.
  4. डेटाबेस मिटाने के लिए, मिटाएं पर क्लिक करें.
gcloud सीएलआई

`gcloud firestore databases delete` निर्देश का इस्तेमाल करें.

gcloud firestore databases delete --database=DATABASE_ID

DATABASE_ID की जगह, मिटाए जाने वाले डेटाबेस का आईडी डालें.

डेटाबेस का क्लोन बनाना

किसी मौजूदा डेटाबेस का क्लोन, चुने गए टाइमस्टैंप पर नए डेटाबेस में बनाया जा सकता है:

  • क्लोन किया गया डेटाबेस, एक नया डेटाबेस होता है. यह सोर्स डेटाबेस वाली जगह पर ही बनाया जाता है.

    क्लोन बनाने के लिए, Cloud Firestore सोर्स डेटाबेस के पॉइंट-इन-टाइम रिकवरी (पीआईटीआर) डेटा का इस्तेमाल करता है. क्लोन किए गए डेटाबेस में, सारा डेटा और इंडेक्स शामिल होते हैं.

  • डिफ़ॉल्ट तौर पर, क्लोन किए गए डेटाबेस को उसी तरीके से एन्क्रिप्ट (सुरक्षित) किया जाएगा जिस तरीके से सोर्स डेटाबेस को किया गया है. इसके लिए, Google के डिफ़ॉल्ट एन्क्रिप्शन या सीएमईके एन्क्रिप्शन का इस्तेमाल किया जाएगा. सीएमईके एन्क्रिप्शन के लिए, एन्क्रिप्शन का कोई दूसरा टाइप तय किया जा सकता है या कोई दूसरी कुंजी इस्तेमाल की जा सकती है.

  • टाइमस्टैंप की ग्रैन्युलैरिटी एक मिनट होती है. इससे, पीआईटीआर विंडो में तय की गई समयावधि में, बीते समय का कोई पॉइंट तय किया जाता है:

    • अगर आपके डेटाबेस के लिए पीआईटीआर की सुविधा चालू है, तो पिछले सात दिनों में (या उससे कम, अगर पीआईटीआर की सुविधा सात दिन से कम समय पहले चालू की गई थी) कोई भी मिनट चुना जा सकता है.
    • अगर पीआईटीआर की सुविधा चालू नहीं है, तो पिछले एक घंटे में कोई भी मिनट चुना जा सकता है.
    • आपके डेटाबेस के ब्यौरे में, सबसे पुराना टाइमस्टैंप देखा जा सकता है. इसे चुना जा सकता है .

कंसोल

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. जिस डेटाबेस का क्लोन बनाना है उसकी टेबल वाली लाइन में, ज़्यादा देखें पर क्लिक करें. क्लोन बनाएं पर क्लिक करें. क्लोन बनाएं डायलॉग दिखता है.

  3. क्लोन बनाएं डायलॉग में, डेटाबेस का क्लोन बनाने के लिए पैरामीटर डालें:

    1. क्लोन को आईडी दें फ़ील्ड में, क्लोन किए गए नए डेटाबेस के लिए कोई डेटाबेस आईडी डालें. यह डेटाबेस आईडी, किसी मौजूदा डेटाबेस से जुड़ा नहीं होना चाहिए.

    2. इससे क्लोन करें फ़ील्ड में, क्लोन करने के लिए कोई टाइमस्टैंप चुनें. चुना गया समय, पीआईटीआर टाइमस्टैंप से मेल खाता है. इसकी ग्रैन्युलैरिटी एक मिनट होती है.

  4. क्लोन बनाएं पर क्लिक करें.

gcloud

किसी डेटाबेस का क्लोन बनाने के लिए, the 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: आरएफ़सी 3339 फ़ॉर्मैट में पीआईटीआर टाइमस्टैंप. इसकी ग्रैन्युलैरिटी एक मिनट होती है. उदाहरण के लिए: 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: सीएमईके एन्क्रिप्शन इस्तेमाल करें. --kms-key-name आर्ग्युमेंट में, कोई कुंजी आईडी तय करें.

यहां दिए गए उदाहरण में, क्लोन किए गए डेटाबेस के लिए सीएमईके एन्क्रिप्शन कॉन्फ़िगर करने का तरीका बताया गया है:

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'

हर डेटाबेस के लिए, ऐक्सेस की अनुमतियां कॉन्फ़िगर करना

हर डेटाबेस के लिए, ऐक्सेस की अनुमतियां कॉन्फ़िगर करने के लिए, Identity and Access Management की शर्तों का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरणों में, एक या उससे ज़्यादा डेटाबेस के लिए, शर्तों के आधार पर ऐक्सेस असाइन करने के लिए, Google Cloud CLI का इस्तेमाल किया गया है. Google Cloud Console में भी, आईएएम की शर्तें तय की जा सकती हैं.

मौजूदा आईएएम नीतियां देखना

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.

सीमाएं

हर प्रोजेक्ट के लिए, ज़्यादा से ज़्यादा 100 डेटाबेस बनाए जा सकते हैं. इस सीमा को बढ़ाने का अनुरोध करने के लिए, आप सहायता टीम से संपर्क कर सकते हैं.

आगे क्या करना है