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

استخدِموا هذا الدليل للتعرّف على حدود 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 ميغابايت

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

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

    1,500 بايت

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

    مدة البقاء (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 وأنشئوا ميزانية لحسابكم Cloud Billing. يمكنكم استخدام إعدادات التنبيهات التلقائية أو تعديل التنبيهات لإرسال إشعارات بنسب مئوية مختلفة من ميزانيتكم الشهرية.

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