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

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

تتبُّع استخدامك

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

الاستخدام المفصّل في وحدة التحكّم 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

المؤشرات

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

الحدّ التفاصيل
الحدّ الأقصى لعدد المؤشرات المركّبة لقاعدة بيانات
  • 200 في حال عدم تفعيل الفوترة لمشروعك Google Cloud.

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

  • 1000 في حال تفعيل الفوترة لمشروعك Google Cloud.

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

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

يمكن أن يحتوي إعداد على مستوى الحقل على إعدادات متعددة للحقل نفسه. على سبيل المثال، يتم احتساب الإعفاء من الفهرسة ذات الحقل الواحد وسياسة مدة البقاء (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 عمليات كتابة وأنّ قواعد الأمان تستخدِم استدعاءَين للوصول إلى المستند للتحقّق من صحة كل عملية كتابة. في هذه الحالة، تستخدِم كل عملية كتابة 2 من استدعاءات الوصول العشرة، ويستخدِم طلب الكتابة المجمّعة 6 من استدعاءات الوصول العشرين.

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

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

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

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

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

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

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

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

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