डेटाबेस मैनेज करना

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

(default) डेटाबेस

अगर आपने कोई डेटाबेस नहीं चुना है, तो Cloud Firestore क्लाइंट लाइब्रेरी और Google Cloud CLI डिफ़ॉल्ट रूप से (default) डेटाबेस से कनेक्ट हो जाती हैं.

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

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

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

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

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

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

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

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

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

  2. अगर यह आपका पहला डेटाबेस है, तो डेटाबेस जोड़ें पर क्लिक करें.
  3. अगर ऐसा नहीं है, तो (डिफ़ॉल्ट) पर क्लिक करें. इसके बाद, डेटाबेस जोड़ें पर क्लिक करें.
  4. अपने डेटाबेस को कॉन्फ़िगर करें. डेटाबेस आईडी डालें. कोई जगह चुनें. डेटाबेस बनाएं पर क्लिक करें.
gcloud

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

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

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

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

डेटाबेस में टैग जोड़ने के लिए, --tags फ़्लैग का इस्तेमाल करें. उदाहरण के लिए:

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

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

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

Terraform
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

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

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

डेटाबेस आईडी

मान्य डेटाबेस आईडी में (default) और यहां दिए गए आईडी शामिल हैं:

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

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

सुरक्षा की सुविधा मिटाना

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

अपने डेटाबेस के लिए Cloud Firestore Security Rules सेट अप करना

Firebase CLI का इस्तेमाल करके, अपने हर डेटाबेस में Cloud Firestore Security Rules को डिप्लॉय करें. Cloud Firestore Security Rules को मैनेज और डिप्लॉय करने से जुड़ी गाइड देखें.

क्लाइंट लाइब्रेरी की मदद से, नाम वाले डेटाबेस को ऐक्सेस करना

नाम वाले डेटाबेस में, (default) के अलावा कोई भी डेटाबेस शामिल होता है. डिफ़ॉल्ट रूप से, Firebase SDK और Google API क्लाइंट लाइब्रेरी, किसी प्रोजेक्ट में मौजूद (default) Cloud Firestore डेटाबेस से कनेक्ट होती हैं. किसी नाम वाले डेटाबेस से कनेक्ट किया गया क्लाइंट बनाने के लिए, क्लाइंट को इंस्टैंशिएट करते समय डेटाबेस आईडी सेट करें.

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

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

कंसोल

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

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

gcloud

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

gcloud firestore databases list
Firebase CLI

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

firebase firestore:databases:list

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

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

gcloud

gcloud firestore databases describe निर्देश का इस्तेमाल करें:

gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI

firebase firestore:databases:get निर्देश का इस्तेमाल करें:

firebase firestore:databases:get 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 की जगह डेटाबेस आईडी डालें.

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

किसी डेटाबेस को मिटाने के लिए, कंसोल या कमांड-लाइन टूल का इस्तेमाल करें.

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

अगर डेटाबेस में App Engine खोज से जुड़ा डेटा या ब्लॉब एंटिटी मौजूद हैं, तो आपको पहले उस डेटा को मिटाना होगा.

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

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

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

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

  2. डेटा टैब में, डेटाबेस के लिए डेटा टेबल व्यू के ऊपर, पर क्लिक करें. इसके बाद, डेटाबेस मिटाएं चुनें.
  3. डेटाबेस मिटाने के लिए, निर्देशों का पालन करें.
gcloud

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

gcloud firestore databases delete --database=DATABASE_ID

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

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

हर डेटाबेस के लिए ऐक्सेस करने की अनुमतियां कॉन्फ़िगर करने के लिए, पहचान और ऐक्सेस मैनेजमेंट की शर्तों का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरणों में, एक या उससे ज़्यादा डेटाबेस के लिए शर्तों के साथ ऐक्सेस देने के लिए, 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: यह किसी Google खाते का ईमेल पता होता है. उदाहरण के लिए, 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: यह किसी Google खाते का ईमेल पता होता है. उदाहरण के लिए, 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: यह किसी Google खाते का ईमेल पता होता है. उदाहरण के लिए, alice@example.com.

Cloud Monitoring

Cloud Firestore मेट्रिक की रिपोर्ट, मॉनिटर किए गए दो संसाधनों के हिसाब से दी जाती है.

firestore.googleapis.com/Database को देखकर, डेटाबेस लेवल पर एग्रीगेट मेट्रिक की जांच की जा सकती है. firestore_instance में रिपोर्ट की गई मेट्रिक, प्रोजेक्ट लेवल पर एग्रीगेट की जाती हैं.

सीमाएं

  • हर प्रोजेक्ट में ज़्यादा से ज़्यादा 100 डेटाबेस हो सकते हैं. इस सीमा को बढ़ाने का अनुरोध करने के लिए, सहायता टीम से संपर्क करें.
  • अगर आपके (default) डेटाबेस में कोई GAE सर्च डेटा मौजूद है, तो उसे मिटाया नहीं जा सकता. GAE Search का डेटा मिटाने के लिए, कृपया index delete api का इस्तेमाल करें. अगर आपने हाल ही में GAE Search का डेटा मिटाया है, तो डेटाबेस को मिटाने से पहले आपको कुछ समय इंतज़ार करना पड़ सकता है.
  • अगर आपके (default) डेटाबेस में कोई ब्लॉब इकाई मौजूद है, तो उसे मिटाया नहीं जा सकता. Blobstore का डेटा मिटाने के लिए, कृपया Blobstore delete api का इस्तेमाल करें. Google Cloud Console में, यह GQL क्वेरी चलाकर देखा जा सकता है कि आपके (default) डेटाबेस में Blobstore का डेटा है या नहीं: SELECT * FROM __BlobInfo__.
  • डेटाबेस मिटाने के पांच मिनट बाद तक, डेटाबेस आईडी का दोबारा इस्तेमाल नहीं किया जा सकता.
  • Cloud Function v1, Firestore के नाम वाले डेटाबेस के साथ काम नहीं करता. कृपया नाम वाले डेटाबेस के लिए इवेंट कॉन्फ़िगर करने के लिए, Cloud Firestore ट्रिगर (दूसरी जनरेशन) का इस्तेमाल करें.
  • डेटाबेस मिटाने के बाद, Firestore फ़ंक्शन ट्रिगर v1 और Firestore इवेंट ट्रिगर काम करना बंद कर सकते हैं. भले ही, उसी नाम से नया डेटाबेस बनाया गया हो.

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