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

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

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

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

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

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

मुफ़्त कोटा

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

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

Firestore में, हर प्रोजेक्ट के लिए सिर्फ़ एक मुफ़्त डेटाबेस की अनुमति होती है.

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

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

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

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

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

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

डेटाबेस

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

100

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

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

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

20

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


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

लिखने और लेन-देन करने की अनुमतियां

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

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

इंडेक्स

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

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

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

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

40,000

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

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

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

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

7.5 केआईबी

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

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

8 एमआईबी

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

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

    1,500 बाइट

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

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

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

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

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

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

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

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

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

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

    इनमें से किसी भी सीमा को पार करने पर, अनुमति नहीं दी जाएगी.

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

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

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