इस पेज पर, Cloud Firestore डेटाबेस बनाने, अपडेट करने, और मिटाने का तरीका बताया गया है. हर प्रोजेक्ट के लिए, एक से ज़्यादा Cloud Firestore डेटाबेस बनाए जा सकते हैं. एक से ज़्यादा डेटाबेस का इस्तेमाल, प्रोडक्शन और टेस्टिंग एनवायरमेंट सेट अप करने, ग्राहक से जुड़े डेटा को अलग करने, और डेटा को अलग-अलग इलाकों के हिसाब से बांटने के लिए किया जा सकता है.
फ़्री टियर का इस्तेमाल करना
Cloud Firestore फ़्री टियर की सुविधा देता है. इससे बिना किसी शुल्क के, का इस्तेमाल शुरू किया जा सकता है.
फ़्री टियर की सुविधा, हर प्रोजेक्ट के लिए सिर्फ़ एक Cloud Firestore डेटाबेस पर लागू होती है. किसी प्रोजेक्ट में, फ़्री टियर वाले डेटाबेस के बिना बनाया गया पहला डेटाबेस, फ़्री टियर की सुविधा के लिए चुना जाएगा. अगर फ़्री टियर की सुविधा वाला डेटाबेस मिटा दिया जाता है, तो बनाया जाने वाला अगला डेटाबेस, फ़्री टियर की सुविधा के लिए चुना जाएगा.
शुरू करने से पहले
डेटाबेस बनाने से पहले, आपको यह काम पूरा करना होगा:
-
अगर आपने अब तक Firebase प्रोजेक्ट नहीं बनाया है, तो उसे बनाएं: Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें. इसके बाद, स्क्रीन पर दिए गए निर्देशों का पालन करके, Firebase प्रोजेक्ट बनाएं या किसी मौजूदा Google Cloud प्रोजेक्ट में Firebase सेवाएं जोड़ें.
- अगले सेक्शन में बताए गए तरीके से, 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 कंसोल
-
Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.
- डेटाबेस जोड़ें पर क्लिक करें.
- Enterprise edition चुनें. अगला पर क्लिक करें.
- Firestore with MongoDB compatibility चुनें.
- डेटाबेस आईडी डालें.
- अपने डेटाबेस के लिए कोई जगह चुनें.
- बनाएं पर क्लिक करें.
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
इन्हें बदलें:
- DATABASE_ID: एक मान्य डेटाबेस आईडी.
- LOCATION: Cloud Firestore मल्टी-रीजन या रीजन का नाम.
डेटाबेस को मिटने से बचाने की सुविधा चालू करने के लिए, --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" }
इन्हें बदलें:
- DATABASE_ID: एक मान्य डेटाबेस आईडी.
- LOCATION: Cloud Firestore मल्टी-रीजन या रीजन का नाम.
- DELETE_PROTECTION_ENABLEMENT: या
DELETE_PROTECTION_ENABLEDयाDELETE_PROTECTION_DISABLED.
डेटाबेस को मिटने से बचाने की सुविधा चालू करने के लिए, delete_protection_state की वैल्यू DELETE_PROTECTION_ENABLED सेट करें.
डेटाबेस को मिटने से बचाने की सुविधा चालू होने पर, इस सेटिंग को बंद किए बिना डेटाबेस को मिटाया नहीं जा सकता. यह सेटिंग डिफ़ॉल्ट रूप से बंद होती है.
डेटाबेस आईडी
मान्य डेटाबेस आईडी में वे आईडी शामिल होते हैं जो इन शर्तों को पूरा करते हैं:
- इसमें सिर्फ़ अक्षर, संख्याएं, और हाइफ़न (
-) शामिल होते हैं. - अक्षर, लोअर केस में होने चाहिए.
- पहला वर्ण अक्षर होना चाहिए.
- आखिरी वर्ण अक्षर या संख्या होनी चाहिए.
- कम से कम चार वर्ण होने चाहिए.
- ज़्यादा से ज़्यादा 63 वर्ण होने चाहिए.
- यह यूयूआईडी नहीं होना चाहिए या यूयूआईडी जैसा नहीं दिखना चाहिए. उदाहरण के लिए,
f47ac10b-58cc-0372-8567-0e02b2c3d479जैसा आईडी इस्तेमाल न करें.
किसी डेटाबेस को मिटाने के बाद, पांच मिनट तक उसके आईडी का तुरंत दोबारा इस्तेमाल नहीं किया जा सकता.
डेटाबेस को मिटने से बचाना
डेटाबेस को गलती से मिटने से बचाने के लिए, डेटाबेस को मिटने से बचाने की सुविधा का इस्तेमाल करें. डेटाबेस को मिटने से बचाने की सुविधा इस तरह काम करती है:
- डेटाबेस को मिटने से बचाने की सुविधा चालू होने पर, इस सुविधा को बंद किए बिना डेटाबेस को मिटाया नहीं जा सकता.
- डेटाबेस को मिटने से बचाने की सुविधा डिफ़ॉल्ट रूप से बंद होती है.
- डेटाबेस बनाते समय, डेटाबेस को मिटने से बचाने की सुविधा चालू की जा सकती है. इसके अलावा, डेटाबेस को मिटने से बचाने की सुविधा चालू करने के लिए, डेटाबेस के कॉन्फ़िगरेशन को अपडेट किया जा सकता है.
डेटाबेस की सूची देखना
अपने डेटाबेस की सूची देखने के लिए, इनमें से कोई एक तरीका अपनाएं:
Firebase कंसोल
-
Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.
- प्रोजेक्ट के सभी डेटाबेस देखने के लिए, Cloud Firestore पर क्लिक करें.
gcloud सीएलआई
अपने प्रोजेक्ट के सभी डेटाबेस की सूची देखने के लिए,
gcloud firestore databases list
निर्देश का इस्तेमाल करें.
gcloud firestore databases list
डेटाबेस की जानकारी देखना
किसी एक डेटाबेस के बारे में जानकारी देखने के लिए, इनमें से कोई एक तरीका अपनाएं:
Firebase कंसोल
-
Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.
- डेटाबेस की सूची में से कोई डेटाबेस चुनें.
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 कंसोल
-
Firebase कंसोल में, Firestore डेटाबेस पेज पर जाएं.
- वह डेटाबेस चुनें जिसे मिटाना है.
- ज़्यादा देखें पर क्लिक करें.
- डेटाबेस मिटाने के लिए, मिटाएं पर क्लिक करें.
gcloud सीएलआई
`gcloud firestore databases delete` निर्देश का इस्तेमाल करें.
gcloud firestore databases delete --database=DATABASE_ID
DATABASE_ID की जगह, वह डेटाबेस आईडी डालें जिसे मिटाना है.
डेटाबेस का क्लोन बनाना
किसी मौजूदा डेटाबेस का क्लोन, चुने गए टाइमस्टैंप पर नए डेटाबेस में बनाया जा सकता है:
क्लोन किया गया डेटाबेस, एक नया डेटाबेस होता है. यह सोर्स डेटाबेस वाली जगह पर ही बनाया जाता है.
क्लोन बनाने के लिए, Cloud Firestore सोर्स डेटाबेस के पॉइंट-इन-टाइम रिकवरी (पीआईटीआर) डेटा का इस्तेमाल करता है. क्लोन किए गए डेटाबेस में, सारा डेटा और इंडेक्स शामिल होते हैं.
डिफ़ॉल्ट तौर पर, क्लोन किए गए डेटाबेस को उसी तरीके से एन्क्रिप्ट (सुरक्षित) किया जाएगा जिस तरीके से सोर्स डेटाबेस को किया गया है. इसके लिए, Google के डिफ़ॉल्ट एन्क्रिप्शन या सीएमईके एन्क्रिप्शन का इस्तेमाल किया जाएगा. आपके पास एन्क्रिप्शन का कोई दूसरा टाइप चुनने या सीएमईके एन्क्रिप्शन के लिए कोई दूसरी कुंजी इस्तेमाल करने का विकल्प होता है.
-
- अगर आपके डेटाबेस के लिए पीआईटीआर की सुविधा चालू है, तो पिछले सात दिनों में (या उससे कम, अगर पीआईटीआर की सुविधा सात दिन से कम समय पहले चालू की गई थी) किसी भी मिनट को चुना जा सकता है.
- अगर पीआईटीआर की सुविधा चालू नहीं है, तो पिछले एक घंटे में किसी भी मिनट को चुना जा सकता है.
- आपके डेटाबेस के ब्यौरे में, सबसे पुराना टाइमस्टैंप देखा जा सकता है. इसे चुना जा सकता है .
कंसोल
Google Cloud Console में, डेटाबेस पेज पर जाएं.
उस डेटाबेस की टेबल वाली लाइन में, ज़्यादा देखें पर क्लिक करें जिसका क्लोन बनाना है. क्लोन बनाएं पर क्लिक करें. क्लोन बनाएं डायलॉग दिखता है.
क्लोन बनाएं डायलॉग में, डेटाबेस का क्लोन बनाने के लिए पैरामीटर डालें:
क्लोन को कोई आईडी दें फ़ील्ड में, क्लोन किए गए नए डेटाबेस के लिए कोई डेटाबेस आईडी डालें. यह डेटाबेस आईडी, किसी मौजूदा डेटाबेस से जुड़ा नहीं होना चाहिए.
इससे क्लोन करें फ़ील्ड में, क्लोन करने के लिए कोई टाइमस्टैंप चुनें. चुना गया समय, पीआईटीआर टाइमस्टैंप से मेल खाता है. इसकी ग्रैन्युलैरिटी एक मिनट होती है.
क्लोन बनाएं पर क्लिक करें.
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 डेटाबेस बनाए जा सकते हैं. इस सीमा को बढ़ाने का अनुरोध करने के लिए, आप सहायता टीम से संपर्क कर सकते हैं.
आगे क्या करना है
- क्विकस्टार्ट: डेटाबेस बनाना और उससे कनेक्ट करना आज़माएं.
- व्यवहार में अंतर के बारे में जानें.
- Cloud Monitoring के लिए, Cloud Firestore के मेट्रिक के बारे में जानें.