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

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

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

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

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

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

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

  1. अगर आपने पहले से कोई Firebase प्रोजेक्ट नहीं बनाया है, तो कोई 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

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

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

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

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

  2. डेटाबेस जोड़ें पर क्लिक करें.
  3. Enterprise वर्शन को चुनें. आगे बढ़ें पर क्लिक करें.
  4. Firestore in Native mode को चुनें.
  5. डेटाबेस आईडी डालें.
  6. अपने डेटाबेस के लिए कोई जगह चुनें. आगे बढ़ें पर क्लिक करें.
  7. चुनें कि आपको रीयल-टाइम अपडेट पाने की सुविधा चालू करनी है या बंद.

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

  8. अपने Cloud Firestore Security Rules के लिए, शुरुआती मोड चुनें:

    टेस्ट मोड
    मोबाइल और वेब क्लाइंट लाइब्रेरी का इस्तेमाल शुरू करने के लिए अच्छा है, लेकिन इससे कोई भी व्यक्ति आपका डेटा पढ़ सकता है और उसे ओवरराइट कर सकता है. जांच करने के बाद, अपना डेटा सुरक्षित करें सेक्शन को ज़रूर देखें.
    प्रोडक्शन मोड
    यह मोबाइल और वेब क्लाइंट से, डेटा को पढ़ने और लिखने की सभी अनुमतियों को अस्वीकार करता है. पुष्टि किए गए आपके ऐप्लिकेशन सर्वर (Node.js, Python, Java) अब भी आपके डेटाबेस को ऐक्सेस कर सकते हैं
  9. बनाएं पर क्लिक करें.
gcloud सीएलआई

gcloud firestore databases create कमांड का इस्तेमाल करें:.

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

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

डेटाबेस आईडी

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

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

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

सुरक्षा की सेटिंग मिटाना

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

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

डेटाबेस की सूची

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

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

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

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

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

gcloud firestore databases list

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

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

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

    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 Database पेज पर जाएं.

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

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

`gcloud firestore databases delete` कमांड का इस्तेमाल करें.

gcloud firestore databases delete --database=DATABASE_ID

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

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

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

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

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

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

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

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

Google Cloud कंसोल

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

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

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

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

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

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

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

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: आरएफ़सी 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'

Firebase CLI

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

firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \

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

  • SOURCE_DATABASE: उस मौजूदा डेटाबेस का नाम जिसे आपको क्लोन करना है. नाम में projects/PROJECT_ID/databases/SOURCE_DATABASE_ID फ़ॉर्मैट का इस्तेमाल किया जाता है.

  • DESTINATION_DATABASE: क्लोन किए गए नए डेटाबेस के लिए डेटाबेस का नाम. नाम में projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID फ़ॉर्मैट का इस्तेमाल किया जाता है. यह नाम किसी मौजूदा डेटाबेस का नहीं होना चाहिए.

  • PITR_TIMESTAMP: आरएफ़सी 3339 फ़ॉर्मैट में पीआईटीआर टाइमस्टैंप, मिनट के हिसाब से. उदाहरण के लिए: 2025-06-01T10:20:00.00Z या 2025-06-01T10:30:00.00-07:00. अगर कोई समय नहीं चुना जाता है, तो मौजूदा समय को मिनट के हिसाब से राउंड डाउन करके स्नैपशॉट लिया जाएगा.

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

  • (डिफ़ॉल्ट) USE_SOURCE_ENCRYPTION: एन्क्रिप्ट करने के लिए, सोर्स डेटाबेस वाले कॉन्फ़िगरेशन का इस्तेमाल करें.
  • GOOGLE_DEFAULT_ENCRYPTION: Google के डिफ़ॉल्ट एन्क्रिप्शन का इस्तेमाल करें.
  • CUSTOMER_MANAGED_ENCRYPTION: सीएमईके एन्क्रिप्शन का इस्तेमाल करें. --kms-key-name आर्ग्युमेंट में, कुंजी आईडी बताएं.

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

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

मौजूदा 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 डेटाबेस हो सकते हैं. इस सीमा को बढ़ाने का अनुरोध करने के लिए, सहायता टीम से संपर्क करें.

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