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

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

(default) डेटाबेस

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

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

मुफ़्त कोटा का इस्तेमाल सिर्फ़ (default) डेटाबेस के साथ किया जा सकता है.

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

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

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

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

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

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

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

कंसोल
  1. Firebase कंसोल में, फ़ायरस्टोर डेटाबेस पेज पर जाएं.

    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 के सुरक्षा नियम सेट अप करना

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

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

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

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

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

कंसोल

Google Cloud Platform कंसोल में, डेटाबेस पेज पर जाएं.

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

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 सर्च डेटा या BLOB इकाइयां हैं, तो आपको पहले वह डेटा मिटाना होगा.

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

कंसोल
  1. Firebase कंसोल में, फ़ायरस्टोर डेटाबेस पेज पर जाएं.

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

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

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

gcloud firestore databases delete --database=DATABASE_ID

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

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

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

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