فهم الفوترة في Cloud Firestore

يوضّح هذا المستند تفاصيل تسعير Cloud Firestore.

في حال الدفع بعملة أخرى غير الدولار الأمريكي، يتم تطبيق الأسعار المدرَجة بعملتك على وحدات SKU في Cloud Platform.

نظرة عامة على التسعير

عند استخدام Cloud Firestore، يتم تحصيل رسوم منك مقابل ما يلي:

  • عدد المستندات التي تقرأها وتكتبها وتحذفها
  • عدد إدخالات الفهرس التي يتم قراءتها لتلبية طلب بحث يمكنك الاطّلاع على مزيد من التفاصيل حول عمليات قراءة الفهرس.
  • مقدار مساحة التخزين التي تستخدمها قاعدة البيانات، بما في ذلك النفقات العامة لـ البيانات الوصفية والفهارس
  • مقدار معدّل نقل البيانات الذي تستخدمه

يتم احتساب استخدام مساحة التخزين ومعدّل نقل البيانات بالغيغابايت الثنائية (غيغابايت)، حيث يساوي 1 غيغابايت = 230 بايت. ويتم تحصيل جميع الرسوم يوميًا.

توفر الأقسام التالية تفاصيل حول كيفية تحصيل الرسوم منك مقابل استخدام Cloud Firestore

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

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

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

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

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

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

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

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

التسعير حسب الموقع الجغرافي

للاطّلاع على أسعار عمليات القراءة والكتابة والحذف ومساحة التخزين لكل موقع جغرافي Cloud Firestore، يُرجى الاطّلاع على أسعار Google Cloud.

في حال الدفع بعملة أخرى غير الدولار الأمريكي، يتم تطبيق الأسعار المدرَجة بعملتك على وحدات SKU في Cloud Platform.

لا تنطبق الحصة المجانية إلا على قاعدة بيانات واحدة لكل مشروع

يمكن أن تتضمّن المشاريع قاعدة بيانات واحدة فقط مؤهّلة للحصول على الحصة المجانية.

لإنشاء قواعد بيانات إضافية، عليك ترقية خطة الفوترة لمشروعك.

تكون قاعدة البيانات الأولى التي تنشئها (بغض النظر عن رقم تعريفها) مؤهّلة للحصول على الحصة المجانية. إذا حذفت قاعدة البيانات هذه، تصبح قاعدة البيانات التالية التي تنشئها هي قاعدة البيانات الجديدة المؤهّلة للحصول على الحصة المجانية.

لا يتم تحصيل أي رسوم إضافية منك مقابل إنشاء قواعد البيانات أو حذفها. وسيتم تحصيل رسوم من جميع قواعد البيانات اللاحقة مقابل الاستخدام الذي يتم تحقيقه في قواعد البيانات هذه.

عمليات القراءة والكتابة والحذف

يتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي يتم قراءتها لتلبية طلب بحث. ويتم تحصيل رسوم منك مقابل كل عملية كتابة وحذف مستند تجريها.

تكون الرسوم المفروضة على عمليات الكتابة والحذف واضحة. بالنسبة إلى عمليات الكتابة، يتم احتساب كل عملية set أو update كعملية كتابة واحدة.

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

عمليات قراءة إدخالات الفهرس

يتم تحصيل رسوم منك مقابل عملية قراءة واحدة لكل مجموعة تضم ما يصل إلى 1,000 إدخال فهرس تتم قراءتها من خلال طلب بحث، باستثناء ما يلي:

  • بالنسبة إلى طلبات البحث عن أقرب جار في متّجه، يتم تحصيل رسوم منك مقابل عملية قراءة واحدة لكل مجموعة تضم ما يصل إلى 100 إدخال فهرس متّجه لأقرب جار تتم قراءتها من خلال طلب البحث.

    على سبيل المثال، إذا كان طلب البحث عن المتّجهات التالي الذي يتضمّن limit: 5 يعرض 5 مستندات ويقرأ 1,550 إدخال فهرس متّجه لأقرب جار، يتم تحصيل رسوم منك مقابل 5 عمليات قراءة للمستندات التي تم عرضها و16 عملية قراءة لإدخالات الفهرس:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • لا يتم تحصيل رسوم من طلبات البحث التي تتضمّن حقل نطاق واحد على الأكثر مقابل إدخالات الفهرس التي تتم قراءتها.

    على سبيل المثال، يحتوي طلب البحث التالي على حقل مساواة واحد (age) وحقل نطاق واحد (start_date) ولا يتم تحصيل رسوم منه مقابل إدخالات الفهرس التي تتم قراءتها:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    يحتوي طلب البحث التالي على حقلَي نطاق (age وstart_date) ويتم تحصيل رسوم منه مقابل عمليات قراءة إدخالات الفهرس:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    يُعدّ الحقل الذي يظهر في عبارة "الترتيب حسب" حقل نطاق عندما يكون هناك حقل نطاق آخر واحد على الأقل في طلب البحث. لذلك، يحتوي طلب البحث التالي على حقلَي نطاق (age وstart_date) ويتم تحصيل رسوم منه مقابل عمليات قراءة إدخالات الفهرس:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    يُعدّ الحقل __name__ دائمًا حقل نطاق، حتى إذا كان يُستخدم فقط في فلتر المساواة. لذلك، يحتوي طلب البحث التالي على حقلَي نطاق (age و__name__) ويتم تحصيل رسوم منه مقابل عمليات قراءة إدخالات الفهرس:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

طلبات البحث عن التجميع

بالنسبة إلى طلبات البحث عن التجميع مثل count() وsum() وavg()، يتم تحصيل رسوم منك مقابل إدخالات الفهرس التي تتم قراءتها من خلال طلب البحث كما هو موضّح أعلاه. بالنسبة إلى طلبات البحث عن التجميع التي تقرأ 0 إدخال فهرس، يتم تحصيل رسوم دنيا مقابل قراءة مستند واحد.

على سبيل المثال، يتم تحصيل رسوم مقابل قراءة مستند واحد لعمليات count() التي تقرأ ما بين 0 و1, 000 إدخال فهرس. بالنسبة إلى عملية count() التي تقرأ 1, 500 إدخال فهرس، يتم تحصيل رسوم منك مقابل قراءة مستندَين.

لمزيد من المعلومات حول الفهارس المستخدَمة وإدخالات الفهرس التي تتم قراءتها، استخدِم أداة Query Explain.

الاستماع إلى نتائج طلب البحث

تتيح لك خدمة Cloud Firestore الاستماع إلى نتائج طلب بحث والحصول على آخر الأخبار في الوقت الفعلي عند تغيُّر نتائج طلب البحث.

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

تعتمد أيضًا فوترة المستمعين في حِزم تطوير البرامج (SDK) للأجهزة الجوّالة والويب على ما إذا كانت ميزة الاحتفاظ بالبيانات بلا إنترنت مفعَّلة أم لا:

  • إذا كانت ميزة "الاحتفاظ بالبيانات بلا إنترنت" مفعَّلة وتم قطع اتصال المستمع لأكثر من 30 دقيقة (على سبيل المثال، إذا انتقل المستخدِم إلى وضع عدم الاتصال بالإنترنت)، سيتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تتم قراءتها كما لو أنّك أرسلت طلب بحث جديدًا تمامًا.

  • إذا كانت ميزة "الاحتفاظ بالبيانات بلا إنترنت" غير مفعَّلة، سيتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تتم قراءتها كما لو أنّك أرسلت طلب بحث جديدًا تمامًا في كل مرة يتم فيها قطع اتصال المستمع وإعادة الاتصال.

إدارة مجموعات النتائج الكبيرة

Cloud Firestore تتضمّن عدة ميزات لمساعدتك في إدارة طلبات البحث التي تعرض عددًا كبيرًا من النتائج:

  • المؤشرات التي تتيح لك استئناف طلب بحث طويل الأمد
  • رموز الصفحات التي تساعدك في تقسيم نتائج طلب البحث إلى صفحات
  • الحدود التي تحدّد عدد النتائج التي سيتم استردادها
  • الإزاحات التي تتيح لك تخطّي عدد ثابت من المستندات

لا يتم تحصيل أي رسوم إضافية مقابل استخدام المؤشرات ورموز الصفحات والحدود. في الواقع، يمكن أن تساعدك هذه الميزات في توفير المال من خلال قراءة المستندات التي تحتاج إليها فقط.

ومع ذلك، عند إرسال طلب بحث يتضمّن إزاحة، يتم تحصيل رسوم منك مقابل عملية قراءة لكل مستند يتم تخطّيه. على سبيل المثال، إذا كان طلب البحث يستخدم إزاحة بقيمة 10 وعرض طلب البحث مستندًا واحدًا، يتم تحصيل رسوم منك مقابل 11 عملية قراءة. بسبب هذه التكلفة الإضافية، عليك استخدام المؤشرات بدلاً من الإزاحات كلما أمكن ذلك.

طلبات البحث الأخرى غير عمليات قراءة المستندات

بالنسبة إلى طلبات البحث الأخرى غير عمليات قراءة المستندات، مثل طلب الحصول على قائمة بمعرّفات المجموعات، يتم تحصيل رسوم منك مقابل قراءة مستند واحد. إذا كان جلب المجموعة الكاملة من النتائج يتطلّب أكثر من طلب واحد (على سبيل المثال، إذا كنت تستخدم ميزة تقسيم النتائج إلى صفحات)، يتم تحصيل رسوم منك مرة واحدة لكل طلب.

الحد الأدنى للرسوم المفروضة على طلبات البحث

يتم تحصيل رسوم دنيا مقابل قراءة مستند واحد لكل طلب بحث تجريه، حتى إذا لم يعرض طلب البحث أي نتائج.

Cloud Firestore Security Rules

بالنسبة إلى مكتبات عملاء الأجهزة الجوّالة والويب، إذا كانت Cloud Firestore Security Rules تستخدم exists() أو get() أو getAfter() لقراءة مستند واحد أو أكثر من قاعدة البيانات، يتم تحصيل رسوم منك مقابل عمليات قراءة إضافية على النحو التالي:

  • يتم تحصيل رسوم منك مقابل عمليات القراءة اللازمة لتقييم Cloud Firestore Security Rules.

    على سبيل المثال، إذا كانت قواعدك تشير إلى ثلاثة مستندات، ولكن Cloud Firestore على Cloud Firestore قراءة مستندَين فقط من هذه المستندات لتقييم قواعدك، سيتم تحصيل رسوم منك مقابل عمليتَي قراءة إضافيتَين للمستندات التابعة.

    يتم تحصيل رسوم منك مقابل عملية قراءة واحدة فقط لكل مستند تابع، حتى إذا كانت قواعدك تشير إلى هذا المستند أكثر من مرة.

  • يتم تحصيل رسوم منك مقابل تقييم القواعد مرة واحدة فقط لكل طلب.

    نتيجةً لذلك، يمكن أن تكون قراءة مستندات متعددة أقل تكلفة من قراءة المستندات واحدًا تلو الآخر، لأنّ قراءة مستندات متعددة تتطلّب عددًا أقل من الطلبات.

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

    • عند إرسال طلب البحث
    • في كل مرة يتم فيها تعديل نتائج طلب البحث
    • في أي وقت ينتقل فيه جهاز المستخدِم إلى وضع عدم الاتصال بالإنترنت، ثم يعود إلى وضع الاتصال بالإنترنت
    • في أي وقت يتم فيه تعديل قواعدك
    • في أي وقت يتم فيه تعديل المستندات التابعة في قواعدك

حجم مساحة تخزين قاعدة البيانات

يتم تحصيل رسوم منك مقابل مقدار البيانات التي تخزّنها في Cloud Firestore، بما في ذلك النفقات العامة لمساحة التخزين. يشمل مقدار النفقات العامة البيانات الوصفية والفهارس التلقائية والفهارس المركّبة.

يتطلّب كل مستند مخزَّن في Cloud Firestore البيانات الوصفية التالية:

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

تُحسب تكاليف مساحة التخزين بالغيغابايت في الشهر ويتم احتسابها يوميًا. Cloud Firestore تقيس حجم قاعدة البيانات يوميًا. خلال فترة شهر، يتم احتساب متوسط نقاط العيّنات هذه لحساب حجم مساحة تخزين قاعدة البيانات. ويتم ضرب هذه القيمة المتوسطة في سعر الوحدة لمساحة التخزين (غيغابايت في الشهر)

يمكنك التعرّف على كيفية احتساب مساحة تخزين Cloud Firestore في مقالة عمليات حساب حجم مساحة التخزين.

بيانات الاستعادة إلى نقطة زمنية

في حال تفعيل ميزة الاستعادة إلى نقطة زمنية، يتم تحصيل رسوم منك مقابل تخزين بيانات الاستعادة إلى نقطة زمنية. سيلاحظ معظم العملاء أنّ التكلفة الإجمالية لتخزين بيانات الاستعادة إلى نقطة زمنية مشابهة لتكلفة تخزين قاعدة البيانات.

تُحسب تكاليف مساحة التخزين للاستعادة إلى نقطة زمنية بالغيغابايت في الشهر ويتم احتسابها يوميًا. Cloud Firestore تقيس حجم قاعدة البيانات يوميًا. خلال فترة شهر، يتم احتساب متوسط نقاط العيّنات هذه لحساب حجم مساحة تخزين قاعدة البيانات. ويتم ضرب هذه القيمة المتوسطة في سعر الوحدة للاستعادة إلى نقطة زمنية (غيغابايت في الشهر).

على سبيل المثال، إذا كان متوسط حجم قاعدة البيانات خلال شهر هو 1 غيغابايت وكانت ميزة "الاستعادة إلى نقطة زمنية" مفعَّلة طوال الشهر، يكون حجم بيانات الاستعادة إلى نقطة زمنية القابلة للفوترة هو 1 غيغابايت أيضًا.

الحد الأدنى للفوترة: قد يتم تحصيل رسوم منك مقابل ما يصل إلى يوم واحد من تكلفة تخزين بيانات الاستعادة إلى نقطة زمنية، حتى إذا أوقفت هذه الميزة في غضون يوم واحد بعد تفعيلها.

بيانات النسخ الاحتياطية وعمليات الاستعادة

في حال تفعيل ميزة "الاحتفاظ بنسخة احتياطية"، يتم تحصيل رسوم منك مقابل تخزين النسخ الاحتياطية لقاعدة البيانات. يساوي حجم مساحة التخزين لنسخة احتياطية حجم مساحة تخزين قاعدة البيانات عند أخذ النسخة الاحتياطية.

تُحسب تكاليف مساحة التخزين للنسخ الاحتياطية بالغيغابايت في الشهر. خلال فترة شهر، يتم أيضًا احتساب عدد الأيام التي يتم فيها الاحتفاظ بكل نسخة احتياطية، ويتم احتساب المتوسط على مدار الشهر. يتم حساب تكلفة كل نسخة احتياطية باستخدام حجم مساحة التخزين للنسخة الاحتياطية مضروبًا في نسبة الشهر التي يتم فيها الاحتفاظ بالنسخة الاحتياطية، مضروبًا في سعر الوحدة. يتم تحديد حدود اليوم لأغراض الفوترة حسب المنطقة الزمنية America/Los_Angeles.

عند إجراء عملية استعادة، Cloud Firestore تقيس الـ حجم النسخة الاحتياطية لعملية الاستعادة. ويتم ضرب حجم النسخة الاحتياطية في سعر الوحدة لعمليات الاستعادة (غيغابايت).

أداة Query Explain

يؤدي استخدام أداة Firestore Query Explain إلى تحمّل تكاليف.

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

عند شرح طلب بحث باستخدام خيار "التحليل"، يتم إجراء عمليات قراءة الفهرس وعمليات القراءة، لذا يتم تحصيل رسوم منك مقابل طلب البحث كالمعتاد. لا يتم تحصيل أي رسوم إضافية مقابل نشاط الشرح والتحليل، بل يتم تحصيل الرسوم المعتادة فقط مقابل طلب البحث الذي يتم تنفيذه.

معدّل نقل البيانات للشبكة

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

Cloud Firestore تحسب حجم الاستجابة استنادًا إلى تنسيق رسالة متسلسلة. لا يتم احتساب النفقات العامة للبروتوكول، مثل النفقات العامة لبروتوكول أمان طبقة النقل (SSL)، ضمن استخدام معدّل نقل البيانات. لا يتم احتساب الطلبات التي ترفضها Cloud Firestore Security Rules ضمن استخدام معدّل نقل البيانات.

لمعرفة مقدار معدّل نقل البيانات الذي استخدمته، يمكنك استخدام Google Cloud Console لـ تصدير بيانات الفوترة إلى ملف.

الأسعار العامة لمعدّل نقل البيانات

بالنسبة إلى الطلبات التي تنشأ داخل Google Cloud Platform (على سبيل المثال، من تطبيق يعمل على Google Compute Engine)، يتم تحصيل رسوم منك على النحو التالي:

نوع الزيارات السعر
نقل البيانات الواردة مجانًا
نقل البيانات داخل منطقة مجانًا
نقل البيانات بين مناطق في المنطقة المتعدّدة نفسها مجانًا
نقل البيانات بين مناطق داخل الولايات المتحدة (لكل غيغابايت) ‫0.01 دولار أمريكي (أول 10 غيغابايت في الشهر مجانية)
نقل البيانات بين المناطق، باستثناء الزيارات بين مناطق الولايات المتحدة معدّلات نقل البيانات الصادرة عبر الإنترنت في Google Cloud Platform

في حال الدفع بعملة أخرى غير الدولار الأمريكي، يتم تطبيق الأسعار المدرَجة بعملتك على وحدات SKU في Cloud Platform.

Cloud Firestore تخضع أيضًا لرسوم إضافية على نقل البيانات الصادرة عبر الإنترنت في ما يلي:

  • طلبات Google Cloud بين المناطق، باستثناء الزيارات بين مناطق الولايات المتحدة
  • الطلبات الواردة من خارج Google Cloud (على سبيل المثال، من جهاز جوّال خاص بمستخدم )

يمكنك الاطّلاع على Google Cloud معدّلات نقل البيانات الصادرة عبر الإنترنت.

الاطّلاع على مثال على التسعير

للاطّلاع على كيفية تحصيل رسوم الفوترة في Cloud Firestore في نموذج تطبيق واقعي ، يُرجى الاطّلاع على مثال على فوترة Cloud Firestore.

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

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

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