يوضّح هذا المستند تفاصيل التسعير Cloud Firestore.
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، سيتم تطبيق الأسعار المدرَجة بعملتك على رموز التخزين التعريفية في Cloud Platform.
نظرة عامة على الأسعار
عند استخدام Cloud Firestore، يتم تحصيل رسوم منك مقابل ما يلي:
- عدد المستندات التي تقرأها وتكتبها وتحذفها
- عدد إدخالات الفهرس التي تمت قراءتها لتلبية طلب بحث: مزيد من التفاصيل حول عمليات قراءة الفهرس
- مقدار مساحة التخزين التي تستخدمها قاعدة البيانات، بما في ذلك النفقات العامة للبيانات الوصفية والفهارس
- مقدار معدل نقل البيانات الذي تستخدمه:
يتم احتساب استخدام مساحة التخزين وعرض النطاق الترددي بوحدة الغيبي بايت (GiB)، حيث يساوي 1 غيبي بايت 230 بايت. تتراكم جميع الرسوم يوميًا.
تقدّم الأقسام التالية تفاصيل حول كيفية تحصيل الرسوم منك مقابل استخدامك Cloud Firestore.
الحصة المجانية
توفّر Cloud Firestore حصة مجانية تتيح لك البدء بدون أي تكلفة. إذا كنت بحاجة إلى المزيد من الحصة، عليك تفعيل الفوترة لمشروعك Google Cloud.
يتم تطبيق الحصص يوميًا وإعادة ضبطها في منتصف الليل بتوقيت المحيط الهادئ.
يلخّص الجدول التالي كميات الحصة المجانية:
الفئة المجانية | الحصة |
---|---|
البيانات المخزّنة | 1 غيغابايت |
قراءات المستند | 50,000 في اليوم |
عمليات الكتابة في المستند | 20,000 في اليوم |
عمليات حذف المستندات | 20,000 في اليوم |
نقل البيانات الصادر | 10 غيغابايت في الشهر |
لا يشمل الاستخدام المجاني العمليات والميزات التالية. يجب تفعيل الفوترة لاستخدام الميزات التالية:
- عمليات حذف البيانات حسب مدة البقاء (TTL)
- بيانات الاستعادة إلى نقطة زمنية
- الاحتفاظ بنسخة احتياطية من البيانات
- عمليات الاستعادة
- عمليات الاستنساخ
لمزيد من المعلومات حول كيفية فوترة هذه الميزات، يُرجى الاطّلاع على أسعار مساحة التخزين.
الأسعار حسب الموقع الجغرافي
للاطّلاع على أسعار عمليات القراءة والكتابة والحذف والتخزين لكل موقع جغرافي Cloud Firestore، راجِع أسعار Google Cloud.
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، تنطبق الأسعار المدرَجة بعملتك على رموز التخزين التعريفية في Cloud Platform.
ما مِن حصة مجانية لقواعد البيانات المُسمّاة
لإنشاء قاعدة بيانات مسماة (غير تلقائية)، عليك ترقية خطة الفوترة الخاصة بمشروعك.
لا تتكبّد أي تكلفة إضافية عند إنشاء قواعد البيانات المسماة أو حذفها، ولكن لا تكون قواعد البيانات هذه مؤهَّلة للحصة المجانية. بدلاً من ذلك، سيتم تحصيل رسوم منك مقابل الاستخدام الذي تم تحقيقه في قواعد البيانات المسماة هذه.
القراءة والكتابة والحذف
يتم تحصيل رسوم منك مقابل المستندات وإدخالات الفهرس التي تتم قراءتها لتلبية طلب بحث. يتم تحصيل رسوم منك مقابل كل عملية كتابة وحذف مستند تنفّذها.
تكون رسوم عمليات الكتابة والحذف واضحة. بالنسبة إلى عمليات الكتابة، يتم احتساب كل عملية set
أو update
كعملية كتابة واحدة.
تتضمّن رسوم عمليات القراءة بعض التفاصيل الدقيقة التي يجب وضعها في الاعتبار. توضّح الأقسام التالية هذه الفروق الدقيقة بالتفصيل.
قراءات إدخال الفهرس
يتم تحصيل رسوم عملية قراءة واحدة عن كل مجموعة من ما يصل إلى 1000 إدخال فهرس تقرأها عملية بحث باستثناء ما يلي:
بالنسبة إلى طلبات البحث عن المتجهات باستخدام خوارزمية الجار الأقرب، يتم تحصيل رسوم منك مقابل عملية قراءة واحدة لكل مجموعة من ما يصل إلى 100 إدخال في فهرس المتجهات باستخدام خوارزمية الجار الأقرب تتم قراءتها بواسطة طلب البحث.
على سبيل المثال، إذا كان طلب البحث التالي عن تطابق المتجهات باستخدام
limit: 5
يعرض 5 مستندات ويقرأ 1,550 إدخالاً في فهرس المتجهات kNN، سيتم تحصيل رسوم منك مقابل 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))
يُعتبر الحقل الذي يظهر في عبارة order by حقل نطاق عندما يكون هناك حقل نطاق آخر واحد على الأقل في الاستعلام. لذلك، يحتوي الاستعلام التالي على حقلَي نطاق (
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 و1000 إدخال فهرس. بالنسبة إلى عملية count()
تقرأ 1500 إدخال فهرس، سيتم تحصيل رسوم منك مقابل عمليتَي قراءة مستند.
لمعرفة المزيد حول الفهارس المستخدَمة وإدخالات الفهرس التي تمّت قراءتها، استخدِم 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 من خلال عمليات احتساب حجم مساحة التخزين.
بيانات الاستعادة إلى نقطة زمنية
في حال تفعيل ميزة الاسترداد في نقطة زمنية، سيتم تحصيل رسوم منك مقابل تخزين بيانات الاسترداد في نقطة زمنية. سيلاحظ معظم العملاء أنّ التكلفة الإجمالية لتخزين بيانات PiTR تشبه تكلفة تخزين قاعدة البيانات.
تُحتسب تكاليف التخزين الخاصة بميزة "الاستعادة إلى نقطة زمنية" يوميًا، وهي مقدّرة بوحدة غيغابايت في الشهر. Cloud Firestore تقيس حجم قاعدة البيانات يوميًا. على مدار شهر، يتم احتساب متوسط نقاط العيّنات هذه لتحديد حجم مساحة التخزين في قاعدة البيانات. يتم ضرب هذه القيمة المتوسطة في سعر الوحدة لعملية الاستعادة إلى نقطة زمنية (GiB في الشهر).
على سبيل المثال، إذا كان متوسط حجم قاعدة البيانات خلال شهر واحد هو 1 غيغابايت وتم تفعيل ميزة "الاسترداد في نقطة زمنية" طوال الشهر، سيكون حجم بيانات ميزة "الاسترداد في نقطة زمنية" القابلة للفوترة هو 1 غيغابايت أيضًا.
الحد الأدنى للفوترة: قد يتم تحصيل رسوم منك تصل إلى تكلفة تخزين لمدة يوم واحد من ميزة "استعادة البيانات في نقطة زمنية" حتى إذا أوقفتها خلال يوم واحد من تفعيلها.
عمليات الاحتفاظ بنسخة احتياطية من البيانات واستعادتها
في حال تفعيل النُسخ الاحتياطية، سيتم تحصيل رسوم منك مقابل تخزين نُسخ قاعدة البيانات الاحتياطية. يساوي حجم مساحة التخزين لنسخة احتياطية حجم مساحة التخزين لقاعدة البيانات عند إنشاء النسخة الاحتياطية.
تُحتسب تكاليف التخزين للنسخ الاحتياطية بوحدة غيغابايت/شهر. خلال فترة شهر واحد، يتم أيضًا احتساب متوسط عدد الأيام التي يتم الاحتفاظ فيها بكل نسخة احتياطية على مدار الشهر. يتم احتساب تكلفة كل نسخة احتياطية باستخدام حجم التخزين للنسخة الاحتياطية مضروبًا في نسبة الشهر الذي يتم الاحتفاظ فيه بالنسخة الاحتياطية، مضروبًا في سعر الوحدة. يتم تحديد حدود اليوم حسب المنطقة الزمنية America/Los_Angeles لأغراض الفوترة.
عند إجراء عملية استعادة، تقيس Cloud Firestore حجم النسخة الاحتياطية لعملية الاستعادة. يتم ضرب حجم النسخة الاحتياطية في سعر الوحدة لعمليات الاستعادة (غيغابايت).
شرح الطلب
يؤدي استخدام 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 |
إذا كنت تدفع بعملة أخرى غير الدولار الأمريكي، تنطبق الأسعار المدرَجة بعملتك على رموز التخزين التعريفية في Cloud Platform.
يخضع Cloud Firestore أيضًا لرسوم إضافية على نقل البيانات من الإنترنت في الحالات التالية:
- طلبات Google Cloud بين المناطق، باستثناء الزيارات بين المناطق في الولايات المتحدة
- طلبات من خارج Google Cloud (مثلاً، من جهاز جوّال خاص بمستخدم)
الاطّلاع على أسعار نقل البيانات من الإنترنت في Google Cloud
الاطّلاع على مثال على الأسعار
لمعرفة كيفية تراكم تكاليف الفوترة في تطبيق نموذجي من العالم الواقعي، يمكنك الاطّلاع على Cloud Firestoreمثال على الفوترة.Cloud Firestore
إدارة الإنفاق
للمساعدة في تجنُّب الرسوم غير المتوقّعة في فاتورتك، يمكنك ضبط الميزانيات والتنبيهات الشهرية باستخدام وحدة تحكّم الفوترة في Google Cloud.
لمراقبة استخدامك Cloud Firestore، افتح علامة التبويب Cloud Firestore الاستخدام في وحدة تحكّم Firebase. استخدِم لوحة البيانات لقياس معدّل استخدامك خلال فترات زمنية مختلفة.