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

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

(default) डेटाबेस

अगर आपके ऐप्लिकेशन को एक से ज़्यादा डेटाबेस की ज़रूरत नहीं है, तो (default) डेटाबेस का इस्तेमाल करें.

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

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

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 सेट अप करना

अपने हर डेटाबेस में Cloud Firestore Security Rules को डिप्लॉय करने के लिए, Firebase CLI का इस्तेमाल करें. 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 कमांड का इस्तेमाल करें. मिटाने से सुरक्षा देने की सुविधा को चालू या बंद करने के लिए, इस निर्देश का इस्तेमाल करें.

मिटाने से सुरक्षा सेटिंग अपडेट करना

किसी डेटाबेस पर मिटाने से जुड़ी सुरक्षा चालू करने के लिए, --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 को डेटाबेस आईडी से बदलें.

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

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

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

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

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