الاستخدام والحدود

استخدِموا هذا الدليل للتعرّف على حدود Cloud Firestore، واطّلِعوا على Cloud Firestore الأسعار للحصول على شرح كامل ومفصّل لتكاليف Cloud Firestore، بما في ذلك الأمور التي يجب الانتباه إليها.

مراقبة الاستخدام

لمراقبة استخدام Cloud Firestore من وحدة تحكّم Firebase، انتقِلوا إلى قواعد البيانات ومساحة التخزين > Firestore > علامة التبويب الاستخدام. استخدِموا لوحة البيانات هذه لقياس استخدامكم على مدار فترات زمنية مختلفة.

الاستخدام المفصّل في وحدة التحكّم Google Cloud

عند إنشاء مشروع Firebase، يتم أيضًا إنشاء مشروع Google Cloud. تتتبّع صفحتا "Cloud Firestore API Quotas وApp Engine Quotas " في Google Cloud console معلومات الاستخدام والحصص في Cloud Firestore.

الحصة المجانية

Cloud Firestore توفّر حصة مجانية تتيح لكم البدء بدون أي تكلفة. إذا كنتم بحاجة إلى حصة إضافية، يجب تفعيل الفوترة لمشروعكم Google Cloud.

يتم تطبيق الحصص يوميًا وإعادة ضبطها في منتصف الليل تقريبًا بتوقيت المحيط الهادئ.

يلخّص الجدول التالي مقادير الحصة المجانية:

الفئة المجانية الحصة
البيانات المخزّنة 1 غيغابايت
عمليات قراءة المستندات 50,000 في اليوم
عمليات كتابة المستندات 20,000 في اليوم
عمليات حذف المستندات 20,000 في اليوم
نقل البيانات الصادرة 10 غيغابايت في الشهر

لا تتضمّن العمليات والميزات التالية الاستخدام المجاني. يجب تفعيل الفوترة لاستخدام هذه الميزات:

  • عمليات الحذف حسب مدة البقاء (TTL)
  • بيانات الاستعادة إلى نقطة زمنية
  • الاحتفاظ بنسخة احتياطية من البيانات
  • عمليات الاستعادة
  • عمليات النسخ

لمزيد من المعلومات حول كيفية فوترة هذه الميزات، يُرجى الاطّلاع على أسعار مساحة التخزين.

سقف الاستخدام العادي

تعرض الجداول التالية الحدود التي تنطبق على Cloud Firestore. هذه الحدود ثابتة ما لم تتم الإشارة إلى خلاف ذلك.

قواعد البيانات

الحدّ التفاصيل
الحدّ الأقصى لعدد قواعد البيانات لكل مشروع

100

يمكنكم التواصل مع فريق الدعم لطلب زيادة هذا الحدّ.

الحدّ الأقصى لعدد قواعد بيانات مفاتيح الترميز المُدارة للعميل (CMEK) لكل مشروع

0

تكون الحصة تلقائيًا 0 لأنّ هذه الميزة متاحة فقط للمستخدمين المدرَجين في قائمة السماح. يمكنكم طلب زيادة الحصة من خلال ملء نموذج طلب الوصول إلى مفاتيح الترميز المُدارة للعميل (CMEK).

المجموعات والمستندات والحقول

الحدّ التفاصيل
القيود المفروضة على أرقام تعريف المجموعات
  • يجب أن تتضمّن أحرف UTF-8 صالحة
  • يجب ألا يزيد طولها عن 1,500 بايت
  • يجب ألا تحتوي على شرطة مائلة للأمام (/)
  • يجب ألا تتألّف فقط من نقطة واحدة (.) أو نقطتين (..)
  • يجب ألا تتطابق مع التعبير العادي __.*__
الحدّ الأقصى لعمق المجموعات الفرعية 100
القيود المفروضة على أرقام تعريف المستندات
  • يجب أن تتضمّن أحرف UTF-8 صالحة
  • يجب ألا يزيد طولها عن 1,500 بايت
  • يجب ألا تحتوي على شرطة مائلة للأمام (/)
  • يجب ألا تتألّف فقط من نقطة واحدة (.) أو نقطتين (..)
  • يجب ألا تتطابق مع التعبير العادي __.*__
  • إذا استوردتم عناصر Datastore إلى قاعدة بيانات Firestore، يتم عرض أرقام تعريف العناصر الرقمية على النحو التالي: __id[0-9]+__
الحدّ الأقصى لحجم اسم المستند 6 كيلوبايت
الحدّ الأقصى لحجم المستند 1 ميغابايت (1,048,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 ميغابايت - 89 بايت (1,048,487 بايت)
الحدّ الأقصى لعمق الحقول في الخريطة أو الصفيف

20

تضيف حقول الخريطة والصفيف مستوى واحدًا إلى العمق الإجمالي للكائن. على سبيل المثال، يبلغ العمق الإجمالي للكائن التالي ثلاثة مستويات:


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

عمليات الكتابة والمعاملات

بالإضافة إلى هذه الحدود، يجب أيضًا الاطّلاع على أفضل الممارسات للتصميم من أجل التوسّع.

الحدّ التفاصيل
الحدّ الأقصى لحجم طلب البيانات من واجهة برمجة التطبيقات 10 ميغابايت
المهلة المحدّدة للمعاملة 270 ثانية، مع مهلة انتهاء صلاحية في حال عدم النشاط تبلغ 60 ثانية
الحدّ الأقصى لعدد عمليات تحويل الحقول التي يمكن إجراؤها على مستند واحد في عملية Commit أو في معاملة 500

المؤشرات

تنطبق الحدود التالية على المؤشرات ذات الحقل الواحد والمؤشرات المركّبة:

الحدّ التفاصيل
الحدّ الأقصى لعدد المؤشرات المركّبة لقاعدة بيانات
الحدّ الأقصى لعدد الإعدادات ذات الحقل الواحد لقاعدة بيانات

يمكن أن يحتوي إعداد على مستوى الحقل على إعدادات متعددة للحقل نفسه. على سبيل المثال، يُحتسب الإعفاء من الفهرسة ذات الحقل الواحد وسياسة مدة البقاء (TTL) على الحقل نفسه كإعداد حقل واحد ضمن الحدّ.

الحدّ الأقصى لعدد إدخالات الفهرس لكل مستند

40,000

عدد إدخالات الفهرس هو مجموع ما يلي لمستند معيّن:

  • عدد إدخالات الفهرس ذات الحقل الواحد
  • عدد إدخالات الفهرس المركّب

لمعرفة كيف يحوّل Cloud Firestore مستندًا ومجموعة من المؤشرات إلى إدخالات فهرس، اطّلِعوا على مثال عدد إدخالات الفهرس هذا.

الحدّ الأقصى لعدد الحقول في فهرس مركّب 100
الحدّ الأقصى لحجم إدخال الفهرس

7.5 كيلوبايت

لمعرفة كيف يحسب Cloud Firestore حجم إدخال الفهرس، اطّلِعوا على حجم إدخال الفهرس.

الحدّ الأقصى لمجموع أحجام إدخالات الفهرس لمستند

8 ميغابايت

الحجم الإجمالي هو مجموع ما يلي لمستند معيّن:

  • مجموع حجم إدخالات الفهرس ذات الحقل الواحد لمستند
  • مجموع حجم إدخالات الفهرس المركّب لمستند
  • الحدّ الأقصى لحجم قيمة الحقل المفهرَس

    1500 بايت

    يتم اقتطاع قيم الحقول التي تزيد عن 1500 بايت. قد تعرض طلبات البحث التي تتضمّن قيم حقول مقتطَعة نتائج غير متّسقة.

    مدة البقاء (TTL)

    الحدّ التفاصيل
    الحدّ الأقصى لعدد الإعدادات ذات الحقل الواحد لقاعدة بيانات

    يمكن أن يحتوي إعداد على مستوى الحقل على إعدادات متعددة للحقل نفسه. على سبيل المثال، يُحتسب الإعفاء من الفهرسة ذات الحقل الواحد وسياسة مدة البقاء (TTL) على الحقل نفسه كإعداد حقل واحد ضمن الحدّ.

    تصدير/استيراد

    تنطبق الحدود التالية على عمليات الاستيراد والتصدير المُدارة:

    الحدّ التفاصيل
    الحدّ الأقصى لإجمالي عدد طلبات التصدير والاستيراد المسموح بها لمشروع في الدقيقة 20
    الحدّ الأقصى لعدد عمليات التصدير والاستيراد المتزامنة 50
    الحدّ الأقصى لعدد فلاتر أرقام تعريف المجموعات لطلبات التصدير والاستيراد 100

    قواعد الأمان

    الحدّ التفاصيل
    الحدّ الأقصى لعدد استدعاءات exists() وget() وgetAfter() لكل طلب
    • 10 لطلبات المستند الواحد وطلبات البحث
    • 20 لعمليات قراءة المستندات المتعددة والمعاملات، وعمليات الكتابة المجمّعة ينطبق الحدّ السابق البالغ 10 أيضًا على كل عملية.

      على سبيل المثال، لنفترض أنّكم تنشئون طلب كتابة مجمّعة يتضمّن 3 عمليات كتابة وأنّ قواعد الأمان تستخدِم استدعاءَين للوصول إلى المستند للتحقّق من صحة كل عملية كتابة. في هذه الحالة، تستخدِم كل عملية كتابة استدعاءَين من أصل 10 استدعاءات وصول، ويستخدِم طلب الكتابة المجمّعة 6 استدعاءات من أصل 20 استدعاء وصول.

    يؤدي تجاوز أي من الحدّين إلى ظهور خطأ "تم رفض الإذن".

    قد يتم تخزين بعض استدعاءات الوصول إلى المستند مؤقتًا، ولا يتم احتساب الاستدعاءات المخزّنة مؤقتًا ضمن الحدّين.

    الحدّ الأقصى لعمق عبارة match المتداخلة 10
    الحدّ الأقصى لطول المسار، بوحدات المسار، المسموح به ضمن مجموعة من عبارات match المتداخلة 100
    الحدّ الأقصى لعدد متغيرات التقاط المسار المسموح بها ضمن مجموعة من عبارات match المتداخلة 20
    الحدّ الأقصى لعمق استدعاء الدالة 20
    الحدّ الأقصى لعدد وسيطات الدالة 7
    الحدّ الأقصى لعدد روابط متغيرات let لكل دالة 10
    الحدّ الأقصى لعدد استدعاءات الدوال المتكررة أو الدورية 0 (غير مسموح بها)
    الحدّ الأقصى لعدد التعبيرات التي يتم تقييمها لكل طلب 1,000
    الحدّ الأقصى لحجم مجموعة القواعد يجب أن تلتزم مجموعات القواعد بحدّين للحجم:
    • حدّ يبلغ 256 كيلوبايت لحجم مصدر نص مجموعة القواعد المنشور من وحدة تحكّم Firebase أو من واجهة سطر الأوامر باستخدام firebase deploy
    • حدّ يبلغ 250 كيلوبايت لحجم مجموعة القواعد المُجمَّعة التي تنتج عندما تعالج Firebase المصدر وتفعّله على الخلفية.

    إدارة الإنفاق

    للمساعدة في تجنُّب الرسوم غير المتوقّعة في فاتورتكم، يمكنكم ضبط ميزانيات وتنبيهات شهرية.

    ضبط ميزانية شهرية

    لتتبُّع تكاليف Cloud Firestore، يمكنكم إنشاء ميزانية شهرية في Google Cloud Console. لن تحدّ الميزانيات من استخدامكم، ولكن يمكنكم ضبط تنبيهات لإعلامكم عند الاقتراب من التكاليف المخطّط لها للشهر أو تجاوزها.

    لضبط ميزانية، انتقِلوا إلى قسم الفوترة في Google Cloud Console وأنشئوا ميزانية لحساب Cloud Billing. يمكنكم استخدام إعدادات التنبيه التلقائية أو تعديل التنبيهات لإرسال إشعارات بنسب مئوية مختلفة من ميزانيتكم الشهرية.

    مزيد من المعلومات عن إعداد الميزانيات وتنبيهات الميزانية.