इस्तेमाल और सीमाएं

Cloud Firestore की सीमाओं को समझने के लिए, इस गाइड का इस्तेमाल करें. साथ ही, Cloud Firestore की लागतों के बारे में पूरी जानकारी पाने के लिए, Cloud Firestore की कीमत देखें. इसमें उन चीज़ों के बारे में भी बताया गया है जिन पर ध्यान देना ज़रूरी है.

अपने इस्तेमाल पर नज़र रखना

Firebase कंसोल से Cloud Firestore के इस्तेमाल पर नज़र रखने के लिए, डेटाबेस और स्टोरेज > Firestore > इस्तेमाल टैब पर जाएं. इस डैशबोर्ड का इस्तेमाल करके, अलग-अलग समयावधि में अपने इस्तेमाल का आकलन करें.

Google Cloud कंसोल में इस्तेमाल की ज़्यादा जानकारी

Firebase प्रोजेक्ट बनाने पर, Google Cloud प्रोजेक्ट भी बन जाता है. Google Cloud कंसोल में मौजूद, Cloud Firestore एपीआई कोटा और App Engine कोटा पेज, Cloud Firestore के इस्तेमाल और कोटा की जानकारी को ट्रैक करते हैं.

मुफ़्त कोटा

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

कोटा हर दिन लागू होता है और पैसिफ़िक समय के मुताबिक आधी रात को रीसेट होता है.

यहां दी गई टेबल में, बिना किसी शुल्क के मिलने वाले कोटा की जानकारी दी गई है:

फ़्री टियर कोटा
संग्रहित डेटा 1 जीआईबी
दस्तावेज़ पढ़ना हर दिन 50,000
दस्तावेज़ लिखना हर दिन 20,000
दस्तावेज़ मिटाना हर दिन 20,000
आउटबाउंड डेटा ट्रांसफ़र हर महीने 10 जीबी

इन कार्रवाइयों और सुविधाओं के लिए, बिना शुल्क के इस्तेमाल की सुविधा उपलब्ध नहीं है. इन सुविधाओं का इस्तेमाल करने के लिए, आपको बिलिंग की सुविधा चालू करनी होगी:

  • टीटीएल के तहत मिटाए गए डेटा की संख्या
  • पीआईटीआर डेटा
  • डेटा का बैक अप लें
  • कार्रवाइयां पहले जैसी करें
  • क्लोन ऑपरेशन

इन सुविधाओं के लिए बिलिंग कैसे की जाती है, इस बारे में ज़्यादा जानने के लिए स्टोरेज की कीमत देखें.

स्टैंडर्ड सीमाएं

यहां दी गई टेबल में, Cloud Firestore पर लागू होने वाली सीमाएं दिखाई गई हैं. ये सीमाएं तय हैं. हालांकि, अगर कोई और जानकारी दी गई है, तो उसके हिसाब से सीमाएं बदल सकती हैं.

डेटाबेस

सीमा विवरण
हर प्रोजेक्ट के लिए डेटाबेस की ज़्यादा से ज़्यादा संख्या

100

इस सीमा को बढ़ाने का अनुरोध करने के लिए, सहायता टीम से संपर्क करें.

हर प्रोजेक्ट के लिए, ग्राहक की ओर से मैनेज की जाने वाली एन्क्रिप्शन कुंजियों (सीएमईके) वाले डेटाबेस की ज़्यादा से ज़्यादा संख्या

0

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

कलेक्शन, दस्तावेज़, और फ़ील्ड

सीमा विवरण
कलेक्शन आईडी पर पाबंदियां
  • UTF-8 में शामिल मान्य वर्ण ही इस्तेमाल किए जा सकते हैं
  • यह 1,500 बाइट से ज़्यादा नहीं होना चाहिए
  • इसमें फ़ॉरवर्ड स्लैश (/) नहीं हो सकता
  • इसमें सिर्फ़ एक पीरियड (.) या दो पीरियड (..) नहीं हो सकते
  • रेगुलर एक्सप्रेशन __.*__ से मैच नहीं किया जा सकता
सब-कलेक्शन की ज़्यादा से ज़्यादा गहराई 100
दस्तावेज़ के आईडी पर पाबंदियां
  • UTF-8 में शामिल मान्य वर्ण ही इस्तेमाल किए जा सकते हैं
  • यह 1,500 बाइट से ज़्यादा नहीं होना चाहिए
  • इसमें फ़ॉरवर्ड स्लैश (/) नहीं हो सकता
  • इसमें सिर्फ़ एक पीरियड (.) या दो पीरियड (..) नहीं हो सकते
  • रेगुलर एक्सप्रेशन __.*__ से मैच नहीं किया जा सकता
  • अगर Datastore इकाइयों को Firestore डेटाबेस में इंपोर्ट किया जाता है, तो अंकों वाले इकाई आईडी, __id[0-9]+__ के तौर पर दिखते हैं
दस्तावेज़ के नाम के लिए ज़्यादा से ज़्यादा साइज़ 6 केआईबी
किसी दस्तावेज़ का ज़्यादा से ज़्यादा साइज़ 1 MiB (10,48,576 बाइट)
फ़ील्ड के नामों से जुड़ी पाबंदियां
  • UTF-8 में शामिल मान्य वर्ण ही इस्तेमाल किए जा सकते हैं
  • रेगुलर एक्सप्रेशन __.*__ से मैच नहीं किया जा सकता
फ़ील्ड के नाम का ज़्यादा से ज़्यादा साइज़ 1,500 बाइट
फ़ील्ड पाथ पर पाबंदियां
  • फ़ील्ड के नामों को एक पीरियड (.) से अलग करना ज़रूरी है
  • इसे सेगमेंट की डॉट-डिलिमिटेड (.) स्ट्रिंग के तौर पर पास किया जा सकता है. इसमें हर सेगमेंट, फ़ील्ड का सामान्य नाम या कोटेशन मार्क में दिया गया फ़ील्ड का नाम (नीचे बताया गया है) होता है.
फ़ील्ड का नाम आसान तब होता है, जब ये सभी बातें सही हों:
  • इसमें सिर्फ़ a-z, A-Z, 0-9, और अंडरस्कोर (_) वर्ण शामिल हों
  • 0-9 से शुरू नहीं होता
कोटेशन मार्क वाले फ़ील्ड का नाम, बैकटिक वर्ण (`) से शुरू और खत्म होता है. उदाहरण के लिए, foo.`x&y` का मतलब है कि x&y फ़ील्ड, foo फ़ील्ड के अंदर नेस्ट किया गया है. बैकटिक वर्ण के साथ फ़ील्ड का नाम बनाने के लिए, बैकटिक वर्ण को बैकस्लैश वर्ण (\) के साथ एस्केप करें. सुविधा के लिए, फ़ील्ड पाथ को FieldPath ऑब्जेक्ट के तौर पर पास करके, कोट किए गए फ़ील्ड के नामों से बचा जा सकता है. उदाहरण के लिए, JavaScript FieldPath देखें.
फ़ील्ड पाथ का ज़्यादा से ज़्यादा साइज़ 1,500 बाइट
फ़ील्ड वैल्यू का ज़्यादा से ज़्यादा साइज़ 1 MiB - 89 बाइट (10,48,487 बाइट)
किसी मैप या कलेक्शन में फ़ील्ड की ज़्यादा से ज़्यादा गहराई

20

मैप और ऐरे फ़ील्ड, किसी ऑब्जेक्ट की कुल गहराई में एक लेवल जोड़ते हैं. उदाहरण के लिए, यहां दिए गए ऑब्जेक्ट में कुल तीन लेवल हैं:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

डेटा में बदलाव और लेन-देन

इन सीमाओं के अलावा, आपको स्केल के लिए डिज़ाइन करने के सबसे सही तरीके भी देखने चाहिए.

सीमा विवरण
एपीआई अनुरोध का ज़्यादा से ज़्यादा साइज़ 10 एमआईबी
लेन-देन के लिए समयसीमा 270 सेकंड, जिसमें 60 सेकंड का आइडल एक्सपायरेशन टाइम शामिल है
किसी Commit कार्रवाई या लेन-देन में, एक दस्तावेज़ पर ज़्यादा से ज़्यादा कितनी बार फ़ील्ड ट्रांसफ़ॉर्मेशन किया जा सकता है 500

इंडेक्स

सिंगल-फ़ील्ड इंडेक्स और कंपोज़िट इंडेक्स पर ये सीमाएं लागू होती हैं:

सीमा विवरण
किसी डेटाबेस के लिए कंपोज़िट इंडेक्स की ज़्यादा से ज़्यादा संख्या
किसी डेटाबेस के लिए, सिंगल-फ़ील्ड कॉन्फ़िगरेशन की ज़्यादा से ज़्यादा संख्या

एक फ़ील्ड लेवल कॉन्फ़िगरेशन में, एक ही फ़ील्ड के लिए कई कॉन्फ़िगरेशन हो सकते हैं. उदाहरण के लिए, एक ही फ़ील्ड पर सिंगल-फ़ील्ड इंडेक्सिंग से छूट और टीटीएल नीति को, सीमा के हिसाब से एक फ़ील्ड कॉन्फ़िगरेशन के तौर पर गिना जाता है.

हर दस्तावेज़ के लिए, इंडेक्स एंट्री की ज़्यादा से ज़्यादा संख्या

40,000

इंडेक्स के रिकॉर्ड की संख्या, किसी दस्तावेज़ के लिए इन चीज़ों का कुल योग होती है:

  • सिंगल-फ़ील्ड इंडेक्स की एंट्री की संख्या
  • कंपोज़िट इंडेक्स की एंट्री की संख्या

यह देखने के लिए कि Cloud Firestore किसी दस्तावेज़ और इंडेक्स के सेट को इंडेक्स के रिकॉर्ड में कैसे बदलता है, इंडेक्स के रिकॉर्ड की संख्या का यह उदाहरण देखें.

कंपोज़िट इंडेक्स में फ़ील्ड की ज़्यादा से ज़्यादा संख्या 100
इंडेक्स एंट्री का ज़्यादा से ज़्यादा साइज़

7.5 केआईबी

Cloud Firestore, इंडेक्स के रिकॉर्ड का साइज़ कैसे कैलकुलेट करता है, यह जानने के लिए इंडेक्स के रिकॉर्ड का साइज़ देखें.

किसी दस्तावेज़ की इंडेक्स एंट्री के साइज़ का ज़्यादा से ज़्यादा योग

8 एमआईबी

किसी दस्तावेज़ का कुल साइज़, इन चीज़ों के साइज़ का योग होता है:

  • किसी दस्तावेज़ के सिंगल-फ़ील्ड इंडेक्स की एंट्री के साइज़ का कुल योग
  • किसी दस्तावेज़ के कंपोज़िट इंडेक्स की एंट्री के साइज़ का कुल योग
  • इंडेक्स किए गए फ़ील्ड की वैल्यू का ज़्यादा से ज़्यादा साइज़

    1,500 बाइट

    फ़ील्ड की जिन वैल्यू का साइज़ 1,500 बाइट से ज़्यादा होता है उन्हें छोटा कर दिया जाता है. जिन क्वेरी में फ़ील्ड की वैल्यू को छोटा किया गया है उनके नतीजे अलग-अलग हो सकते हैं.

    टाइम-टू-लाइव (टीटीएल)

    सीमा विवरण
    किसी डेटाबेस के लिए, सिंगल-फ़ील्ड कॉन्फ़िगरेशन की ज़्यादा से ज़्यादा संख्या

    एक फ़ील्ड लेवल कॉन्फ़िगरेशन में, एक ही फ़ील्ड के लिए कई कॉन्फ़िगरेशन हो सकते हैं. उदाहरण के लिए, एक ही फ़ील्ड पर सिंगल-फ़ील्ड इंडेक्सिंग से छूट और टीटीएल नीति को, सीमा के हिसाब से एक फ़ील्ड कॉन्फ़िगरेशन के तौर पर गिना जाता है.

    एक्सपोर्ट/इंपोर्ट

    मैनेज किए जा रहे इंपोर्ट और एक्सपोर्ट ऑपरेशन पर ये सीमाएं लागू होती हैं:

    सीमा विवरण
    किसी प्रोजेक्ट के लिए, हर मिनट एक्सपोर्ट और इंपोर्ट के अनुरोधों की ज़्यादा से ज़्यादा संख्या 20
    एक साथ एक्सपोर्ट और इंपोर्ट किए जा सकने वाले डेटा की ज़्यादा से ज़्यादा संख्या 50
    एक्सपोर्ट और इंपोर्ट के अनुरोधों के लिए, कलेक्शन आईडी फ़िल्टर की ज़्यादा से ज़्यादा संख्या 100

    सुरक्षा से जुड़े नियम

    सीमा विवरण
    हर अनुरोध के लिए, exists(), get(), और getAfter() कॉल की ज़्यादा से ज़्यादा संख्या
    • एक दस्तावेज़ के अनुरोधों और क्वेरी के अनुरोधों के लिए 10.
    • एक से ज़्यादा दस्तावेज़ों को पढ़ने, लेन-देन करने, और बैच में लिखने के लिए 20. हर कार्रवाई पर, 10 की पिछली सीमा भी लागू होती है.

      उदाहरण के लिए, मान लें कि आपने तीन राइट ऑपरेशन के साथ, बैच में राइट करने का अनुरोध किया है. साथ ही, आपके सुरक्षा नियम, हर राइट ऑपरेशन की पुष्टि करने के लिए, दस्तावेज़ को ऐक्सेस करने के दो कॉल का इस्तेमाल करते हैं. इस मामले में, हर राइट ऑपरेशन अपने 10 ऐक्सेस कॉल में से दो का इस्तेमाल करता है. साथ ही, बैच में किए गए राइट ऑपरेशन का अनुरोध, अपने 20 ऐक्सेस कॉल में से छह का इस्तेमाल करता है.

    इनमें से किसी भी सीमा को पार करने पर, अनुमति न मिलने से जुड़ी गड़बड़ी होती है.

    दस्तावेज़ को ऐक्सेस करने के लिए किए गए कुछ कॉल को कैश मेमोरी में सेव किया जा सकता है. कैश मेमोरी में सेव किए गए कॉल, तय सीमा में नहीं गिने जाते.

    नेस्ट किए गए match स्टेटमेंट की ज़्यादा से ज़्यादा डेप्थ 10
    नेस्ट किए गए match स्टेटमेंट के सेट में, पाथ सेगमेंट में पाथ की ज़्यादा से ज़्यादा लंबाई 100
    नेस्ट किए गए match स्टेटमेंट के सेट में, पाथ कैप्चर वैरिएबल की ज़्यादा से ज़्यादा संख्या 20
    फ़ंक्शन कॉल की ज़्यादा से ज़्यादा डेप्थ 20
    फ़ंक्शन के आर्ग्युमेंट की ज़्यादा से ज़्यादा संख्या 7
    हर फ़ंक्शन के लिए, let वैरिएबल बाइंडिंग की ज़्यादा से ज़्यादा संख्या 10
    रिकर्सिव या साइक्लिक फ़ंक्शन कॉल की ज़्यादा से ज़्यादा संख्या 0 (अनुमति नहीं है)
    हर अनुरोध के लिए, ज़्यादा से ज़्यादा कितने एक्सप्रेशन का आकलन किया जा सकता है 1,000
    नियमों के सेट का ज़्यादा से ज़्यादा साइज़ नियमों के सेट के लिए, साइज़ की दो सीमाएं तय की गई हैं:
    • Firebase कंसोल या सीएलआई से firebase deploy का इस्तेमाल करके पब्लिश किए गए नियमों के सेट के टेक्स्ट सोर्स का साइज़ 256 केबी से ज़्यादा नहीं होना चाहिए.
    • कंपाइल किए गए नियमों के सेट का साइज़ 250 केबी से ज़्यादा नहीं होना चाहिए. यह सेट तब बनता है, जब Firebase सोर्स को प्रोसेस करता है और उसे बैक-एंड पर चालू करता है.

    खर्च मैनेज करना

    अपने बिल में अचानक लगने वाले शुल्कों से बचने के लिए, महीने का बजट और सूचनाएं सेट करें.

    महीने का बजट सेट करना

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

    बजट सेट करने के लिए, Google Cloud कंसोल में बिलिंग सेक्शन पर जाएं और अपने Cloud Billing खाते के लिए बजट बनाएं. डिफ़ॉल्ट सूचना सेटिंग का इस्तेमाल किया जा सकता है या सूचनाओं में बदलाव करके, महीने के बजट के अलग-अलग प्रतिशत पर सूचनाएं भेजी जा सकती हैं.

    बजट और बजट से जुड़ी सूचनाएं सेट अप करने के बारे में ज़्यादा जानें.