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

इस पेज पर, 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 in Native mode चुनें.
  5. डेटाबेस आईडी डालें.
  6. अपने डेटाबेस के लिए कोई जगह चुनें. आगे बढ़ें पर क्लिक करें.
  7. रीयलटाइम अपडेट की सुविधा चालू या बंद करने के लिए, कोई विकल्प चुनें.

    रीयलटाइम अपडेट की सुविधा से, आपका डेटाबेस onSnapshot लिसनर के साथ काम कर सकता है. Native mode में 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 जैसा आईडी इस्तेमाल न करें.

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

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

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

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

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

gcloud सीएलआई

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

gcloud firestore databases list

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

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

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 की जगह, कोई डेटाबेस आईडी डालें.

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

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

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

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

किसी डेटाबेस का क्लोन बनाने के लिए, 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'

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 आर्ग्युमेंट में, कोई कुंजी आईडी तय करें.

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

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

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