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

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

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

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

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

عند إنشاء مشروع على Firebase، يعني ذلك أيضًا أنّك تنشئ مشروعًا على Google Cloud. صفحتا حصص Cloud Firestore API و حصص App Engine في Google Cloud وحدة تحكّم المسار Cloud Firestore تقدّمان معلومات عن استخدام Cloud Firestore والحصة.

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

يوفّر Cloud Firestore حصة مجانية تتيح لك البدء باستخدام قاعدة بيانات (default) بدون أي تكلفة. في ما يلي مبالغ الحصة المجانية. إذا كنت بحاجة إلى حصة أكبر، عليك تفعيل الفوترة لمشروعك على Google Cloud.

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

تتوفّر الحصة المجانية لقاعدة بيانات (default) فقط.

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

لا تشمل العمليات والميزات التالية الاستخدام المجاني. يجب تفعيل ميزة الفوترة لاستخدام الميزات التالية:

  • استخدام قواعد بيانات مُسمّاة (غير تلقائية)
  • عمليات حذف مدة البقاء (TTL)
  • بيانات PITR
  • الاحتفاظ بنسخة احتياطية من البيانات
  • استعادة العمليات

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

الحدود العادية

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

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

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

100

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

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

الحدّ المسموح به التفاصيل
القيود المفروضة على أرقام تعريف المجموعات
  • يجب أن تكون أحرف 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).
الحد الأقصى لحجم مسار الحقل 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 من طلبَي الوصول العشرين.

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

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

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

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

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

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

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

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

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