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

यह सिर्फ़ Cloud Firestore Enterprise वर्शन के लिए काम का है.

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

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

Cloud Firestore में मुफ़्त टियर उपलब्ध है. इसका इस्तेमाल बिना किसी शुल्क के किया जा सकता है.

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

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

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

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

  2. अगले सेक्शन में बताए गए तरीके से, पहचान और ऐक्सेस मैनेजमेंट की सही भूमिकाएं असाइन करें.

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

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

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

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

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

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

MongoDB के साथ काम करने वाला Cloud Firestore डेटाबेस बनाने के लिए, इनमें से कोई एक तरीका इस्तेमाल करें:

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

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

  2. डेटाबेस बनाएं पर क्लिक करें.
  3. Enterprise edition को चुनें. आगे बढ़ें पर क्लिक करें.
  4. डेटाबेस आईडी डालें.
  5. अपने डेटाबेस के लिए कोई जगह चुनें.
  6. अपने डेटाबेस को कॉन्फ़िगर करें. इसके लिए, आपको एक मोड चुनना होगा.
  7. बनाएं पर क्लिक करें.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \
--location=LOCATION
gcloud सीएलआई

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

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

इनकी जगह ये डालें:

डेटा मिटाने से सुरक्षा देने वाली सुविधा को चालू करने के लिए, --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 के डिफ़ॉल्ट एन्क्रिप्शन या सीएमईके एन्क्रिप्शन का इस्तेमाल किया जाएगा. CMEK एन्क्रिप्शन के लिए, एन्क्रिप्शन का कोई दूसरा टाइप तय किया जा सकता है या किसी दूसरी कुंजी का इस्तेमाल किया जा सकता है.

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

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

कंसोल

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

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

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

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

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

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

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

gcloud

डेटाबेस को क्लोन करने के लिए, gcloud alpha firestore databases clone कमांड का इस्तेमाल करें:

gcloud alpha 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 alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'

क्लोन किए गए डेटाबेस के एन्क्रिप्शन कॉन्फ़िगरेशन में बदलाव करना

डिफ़ॉल्ट रूप से, क्लोन किए गए डेटाबेस में एन्क्रिप्शन का वही कॉन्फ़िगरेशन होगा जो सोर्स डेटाबेस में है. एन्क्रिप्शन कॉन्फ़िगरेशन बदलने के लिए, --encryption-type आर्ग्युमेंट का इस्तेमाल करें:

  • (डिफ़ॉल्ट) use-source-encryption: सोर्स डेटाबेस के लिए इस्तेमाल किए गए एन्क्रिप्शन कॉन्फ़िगरेशन का ही इस्तेमाल करें.
  • google-default-encryption: डेटा सुरक्षित करने के लिए, Google के डिफ़ॉल्ट तरीके का इस्तेमाल करें.
  • customer-managed-encryption: CMEK एन्क्रिप्शन का इस्तेमाल करें. --kms-key-name आर्ग्युमेंट में कुंजी आईडी डालें.

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

gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/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 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 डेटाबेस हो सकते हैं. इस सीमा को बढ़ाने का अनुरोध करने के लिए, सहायता टीम से संपर्क करें.

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