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

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

डेटा के इस्तेमाल को मॉनिटर करना

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

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

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

मुफ़्त कोटा

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

कोटे हर रोज़ लागू किए जाते हैं और आधी रात पैसिफ़िक समय के आस-पास रीसेट कर दिए जाते हैं.

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

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

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

  • नाम वाले (डिफ़ॉल्ट नहीं) डेटाबेस का इस्तेमाल
  • TTL मिटा देता है
  • पीआईटीआर डेटा
  • बैकअप डेटा
  • वापस लाने की कार्रवाइयां

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

मानक सीमाएं

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

डेटाबेस

सीमा जानकारी
हर प्रोजेक्ट में डेटाबेस की ज़्यादा से ज़्यादा संख्या

100

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

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

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

20

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


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

लिखें और लेन-देन

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

सीमा जानकारी
एपीआई अनुरोध का ज़्यादा से ज़्यादा साइज़ 10 एमआईबी
लेन-देन के लिए समयसीमा 270 सेकंड, 60 सेकंड तक निष्क्रिय रहने का समय

इंडेक्स

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

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

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

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

40,000

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

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

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

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

7.5 केआईबी

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

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

8 एमआईबी

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

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

    1500 बाइट

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

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

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

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

    निर्यात/इंपोर्ट

    नीचे दी गई सीमाएं, मैनेज किए जा रहे डेटा को इंपोर्ट और एक्सपोर्ट करने की कार्रवाइयों पर लागू होती हैं:

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

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

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

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

    सीमा से ज़्यादा नतीजे पाने पर, अनुमति नहीं मिलने की गड़बड़ी दिखेगी.

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

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

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

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

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

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

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

    बजट और बजट अलर्ट सेट अप करने के बारे में ज़्यादा जानें.