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

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

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

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

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

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

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

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

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'

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

उदाहरण:

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 में भी, 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.

सीमाएं

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

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