راجع مثال تسعير Cloud Firestore

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

نظرة عامة: التكاليف حسب مستوى الاستخدام

لتوضيح التكاليف النموذجية، فكر في مثال لتطبيق الدردشة، حيث يمكن للمستخدمين بدء محادثات مع اثنين أو أكثر من المشاركين. يمكن للمستخدمين رؤية محادثاتهم النشطة في القائمة، وقراءة الرسائل، وإرسال الرسائل. في هذا المثال، نحن نستخدم التسعير لمنطقة أمريكا الشمالية المتعددة (على وجه التحديد nam5 ).

الافتراضات

خذ بعين الاعتبار الافتراضات التالية حول الاستخدام وتخزين البيانات:

  • يمثل المستخدمون النشطون يوميًا (DAUs) 10% من إجمالي عمليات تثبيت التطبيق. يمكنك تقدير تكاليفك اليومية باستخدام تقدير تقريبي لعدد المستخدمين النشطين يوميًا (DAUs). هؤلاء هم المستخدمون الذين يفتحون تطبيقك ويستخدمونه بشكل نشط في يوم معين، وهو ما يمثل عادةً مجموعة فرعية صغيرة من إجمالي عمليات تثبيت تطبيقك. بالنسبة للحسابات الواردة أدناه، قدّرنا عدد المستخدمين النشطين يوميًا بنسبة 10% من إجمالي عدد عمليات تثبيت التطبيق.
  • أحجام المستندات صغيرة نسبيًا. انظر الجدول أدناه للحصول على تفاصيل لحجم المستند حسب النوع.
  • يتم تخزين البيانات لمدة ثلاثة أشهر فقط. يتم تخزين الرسائل الموجودة في مثال تطبيق الدردشة لمدة ثلاثة أشهر فقط. لحساب عمليات الحذف، توضح الحسابات أدناه حذفًا يوميًا لكل كتابة يومية.
  • تعكس تقديرات التكلفة هذه الجزء الأكبر من تكاليف تطبيق المثال، ولكن ليس جميعها. لقد قمنا بحساب الجزء الأكبر من تكاليف التطبيق من خلال حساب العمليات وتخزين المستخدم والرسائل والخروج لمهام المستخدم الأكثر شيوعًا الموضحة في هذا الدليل. ومع ذلك، قد تحتاج إلى مراعاة التكاليف الإضافية، اعتمادًا على بنية تطبيقك واحتياجات البيانات. استخدم هذا المثال لتوجيه حساباتك، ولكن ارجع إلى صفحة التسعير للحصول على توضيحات أكثر شمولاً لتكاليف Cloud Firestore.

للحصول على تفاصيل العمليات حسب مهمة المستخدم، راجع قسم التفصيل: الاستخدام المفوتر حسب مهمة المستخدم .

صغير
(50 ألف عملية تثبيت)

مقابل 50000 عملية تثبيت للتطبيق (5000 مستخدم نشط يوميًا): 12.14 دولارًا شهريًا

تكاليف القراءة/الكتابة
إجمالي التكلفة الشهرية = 11.10 دولارًا أمريكيًا في الشهر
إجمالي 400 ألف قراءة يومية = 50 ألف قراءة بدون تكلفة + (350 ألف قراءة بسعر 0.06 دولار/100 ألف) = 3.5 * 0.06 دولار
0.21 دولار / يوم * 30 = 6.30 دولار
إجمالي 100 ألف كتابات يومية = 20 ألف كتابة بدون تكلفة + (80 ألف كتابة بسعر 0.18 دولار/100 ألف) = .8 * 0.18 دولار
0.14 دولار / يوم * 30 = 4.20 دولار
إجمالي 100 ألف عملية حذف يومية = 20 ألف عملية حذف بدون تكلفة + (80 ألف عملية حذف بسعر 0.02 دولار/100 ألف) = .8 * 0.02 دولار
0.02 دولار / يوم * 30 = 0.60 دولار
تكاليف التخزين/الشبكات
إجمالي التكلفة الشهرية = 1.04 دولارًا أمريكيًا في الشهر
20 كيلو بايت / DAU من الخروج اليومي * 5K DAUs = 100 ميجابايت من الخروج اليومي * 30 = 3 جيجا خروج شهري للشبكة
3 غيغابايت من الخروج بدون تكلفة = بدون تكلفة 1
تخزين يومي للرسائل يبلغ 15 كيلو بايت / DAU + تخزين / تثبيت 3 كيلو بايت 2 = 45 كيلو بايت من التخزين / DAU * 5K DAUs = 225 ميجابايت من التخزين اليومي / DAU * 30 = استخدام سعة تخزينية شهرية تبلغ 6.75 جيجابايت
سعة تخزينية مجانية تبلغ 1 جيجابايت + (5.75 * 0.18 USD) = 1.04 USD/الشهر

1 10 جيجابايت من الخروج الشهري للشبكة مجاني لـ Cloud Firestore.
2 نظرًا لأن افتراضنا هو أن وحدات DAU تمثل 10% من إجمالي عمليات تثبيت التطبيق، فإن هذا الرقم يمثل إجمالي عدد المستخدمين الذين قاموا بتثبيت تطبيقك.

واسطة
(مليون عملية تثبيت)

مقابل 1,000,000 عملية تثبيت للتطبيق (100,000 مستخدم نشط يوميًا): 292.02 دولارًا شهريًا

تكاليف القراءة/الكتابة
إجمالي التكلفة الشهرية = 261.90 دولارًا أمريكيًا في الشهر
إجمالي 8 مليون قراءة يومية = 50 ألف قراءة بدون تكلفة + (7.95 مليون قراءة بسعر 0.06 دولار/100 ألف) = 79.5 * 0.06 دولار
4.77 دولارًا أمريكيًا في اليوم * 30 = 143.10 دولارًا أمريكيًا
إجمالي 2 مليون كتابة يومية = 20 ألف كتابة بدون تكلفة + (1.98 مليون كتابة بسعر 0.18 دولار/100 ألف) = 19.8 * 0.18 دولار
3.56 دولارًا أمريكيًا في اليوم * 30 = 106.80 دولارًا أمريكيًا
إجمالي 2 مليون عملية حذف يومية = 20 ألف عملية حذف بدون تكلفة + (1.98 مليون عملية حذف بسعر 0.02 دولار/100 ألف) = 19.8 * 0.02 دولار
0.40 دولارًا أمريكيًا / اليوم * 30 = 12.00 دولارًا أمريكيًا
تكاليف التخزين/الشبكات
إجمالي التكلفة الشهرية = 30.12 دولارًا أمريكيًا في الشهر
20 كيلو بايت / DAU من الخروج اليومي * 100 ألف DAU = 2 جيجابايت من الخروج اليومي * 30 = 60 جيجابايت خروج الشبكة شهريا
10 جيجابايت خروج بدون تكلفة + (خروج 50 جيجابايت * 0.12 USD/جيجابايت) = 6.00 USD/شهر
تخزين يومي للرسائل بسعة 15 كيلو بايت / DAU + تخزين / تثبيت 3 كيلو بايت 1 = 45 كيلو بايت من التخزين / DAU * 100K DAUs = 4.5 جيجابايت من التخزين اليومي / DAU * 30 = 135 جيجا استخدام شهري للتخزين
سعة تخزينية مجانية تبلغ 1 جيجابايت + (134 جيجابايت * 0.18 USD/جيجابايت) = 24.12 USD/الشهر

1 نظرًا لأن افتراضنا هو أن وحدات DAU تمثل 10% من إجمالي عمليات تثبيت التطبيق، فإن هذا الرقم يمثل إجمالي عدد المستخدمين الذين قاموا بتثبيت تطبيقك.

كبير
(10 مليون عملية تثبيت)

مقابل 10,000,000 عملية تثبيت للتطبيق (1,000,000 مستخدم نشط يوميًا): 2951.52 دولارًا

تكاليف القراءة/الكتابة
إجمالي التكلفة الشهرية = الإجمالي: 2637.90 دولارًا أمريكيًا في الشهر
إجمالي 80 مليون قراءة يومية = 50 ألف قراءة بدون تكلفة + (79.95 مليون قراءة بسعر 0.06 دولار/100 ألف) = 799.5 * 0.06 دولار
47.97 دولارًا أمريكيًا / اليوم * 30 = 1439.10 دولارًا أمريكيًا
إجمالي 20 مليون كتابة يومية = 20 ألف كتابة بدون تكلفة + (19.98 مليون كتابة بسعر 0.18 دولار/100 ألف) = 199.8 * 0.18 دولار
35.96 دولارًا أمريكيًا في اليوم * 30 = 1078.80 دولارًا أمريكيًا
إجمالي 20 مليون عملية حذف يومية = 20 ألف عملية حذف بدون تكلفة + (19.98 مليون عملية حذف بسعر 0.02 دولار/100 ألف) = 199.8 * 0.02 دولار
4.00 دولارات أمريكية / يوم * 30 = 120.00 دولارًا أمريكيًا
تكاليف التخزين/الشبكات
إجمالي التكلفة الشهرية = 313.62 دولارًا أمريكيًا في الشهر
20 كيلو بايت / DAU من الخروج اليومي * 1M DAUs = 20 جيجابايت من الخروج اليومي * 30 = 600 جيجابايت خروج الشبكة شهريا
10 جيجابايت خروج بدون تكلفة + (خروج 590 جيجابايت * 0.12 USD/جيجابايت) = 70.80 USD/شهر
تخزين يومي للرسائل بسعة 15 كيلو بايت / DAU + تخزين / تثبيت 3 كيلو بايت 1 = 45 كيلو بايت من التخزين / DAU * 1M DAUs = 45 جيجابايت من التخزين اليومي / DAU * 30 = 1350 جيجابايت استخدام شهري للتخزين
(تخزين مجاني بسعة 1 جيجابايت) + (1349 جيجابايت * 0.18 USD/جيجابايت) = 242.82 USD/الشهر

1 نظرًا لأن افتراضنا هو أن وحدات DAU تمثل 10% من إجمالي عمليات تثبيت التطبيق، فإن هذا الرقم يمثل إجمالي عدد المستخدمين الذين قاموا بتثبيت تطبيقك.

من فوائد نموذج الفوترة في Cloud Firestore الذي يستحق الاهتمام هو أنك تدفع فقط مقابل ما تستخدمه. ونتيجة لذلك، قد تنمو فاتورتك وتتقلص مع عدد المستخدمين النشطين يوميًا (DAU).

الانهيار: الاستخدام المفوتر حسب مهمة المستخدم

بالنسبة لتطبيق الدردشة الخاص بنا، تكون بنية البيانات كما يلي:

  • users/{userId} - سجلات المستخدم
  • groups/{groupId} — الدردشات بين مستخدمين أو أكثر
    • messages/{messageId} — كل رسالة في الدردشة.

مخزن البيانات

لحساب تكاليف التخزين لتخزين بيانات التطبيق، قم بتطبيق الافتراضات التالية حول أحجام المستندات:

مجموعة حجم المستند (قيد النقل) حجم المستند (على القرص)*
المستخدمين 1 كيلو بايت 3 كيلو بايت
مجموعات 0.5 كيلو بايت 1.5 كيلو بايت
رسائل 0.25 كيلو بايت 0.75 كيلو بايت

*يتضمن حساب الحجم هذا فهارسًا لحقول الرسائل، ولكنه يفترض أن الفهرسة معطلة لمحتوى الرسالة.

يقوم التطبيق أيضًا بتخزين الرسائل التي يصل عمرها إلى ثلاثة أشهر فقط، لتقليل تكاليف التخزين.

لمزيد من المعلومات حول حساب تكاليف التخزين، راجع فهم حسابات حجم التخزين .

عمليات

يقوم المستخدمون عادةً بإكمال المهام الشائعة التالية في التطبيق:

إجمالي العمليات المقدرة للتطبيق النموذجي في Cloud Firestore لمهام المستخدم النموذجية الثلاث هي كما يلي:

  • القراءات: (5*10) + (30) = 80 قراءة/مستخدم/يوم
  • عمليات الكتابة: (10*2) = 20 عملية كتابة/مستخدم/يوم
  • خروج الشبكة : (50 * 0.25 كيلو بايت) + (30 * 0.25 كيلو بايت) = 20 كيلو بايت / مستخدم / يوم
  • التخزين : (20 * 0.75 كيلو بايت) = 15 كيلو بايت / مستخدم / يوم

إجمالي الاستخدام حسب مهمة المستخدم

حدد مهمة كل مستخدم لرؤية الوصف الكامل والتفاصيل لتكاليف العمليات والتخزين والشبكات في التطبيق.

انظر قائمة الدردشات

تقوم الشاشة الرئيسية للتطبيق بتحميل أحدث 25 محادثة، مما يؤدي إلى فرض رسوم مقابل قراءة 25 مستندًا. افترض أن المستخدم النشط يفتح التطبيق 5 مرات يوميًا، بإجمالي 125 قراءة لكل مستخدم كل يوم. ومع ذلك، يمكن للاستعلامات الأكثر كفاءة، مثل تلك الموجودة في المثال التالي، تقليل هذا الحمل.

في المثال أدناه، نقوم بقصر الاستعلام على الدردشات الجديدة باستخدام الطابع الزمني لكل عملية جلب ناجحة، والتي يتم تخزينها بواسطة التطبيق:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

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

قراءة الرسائل في الدردشة

يقوم المستخدمون بالنقر فوق سلاسل الدردشة من الشاشة الرئيسية لرؤية الرسائل الأخيرة، وتحميل أحدث 50 رسالة في التحميل الأولي.

افترض أن المستخدم النموذجي يقوم بهذا الإجراء 5 مرات يوميًا (مرة واحدة في كل مرة يفتح فيها الشاشة الرئيسية)، مما يؤدي إلى إجمالي 250 قراءة لكل مستخدم كل يوم. يمكننا أيضًا قصر استعلامنا على الرسائل الجديدة منذ آخر مرة جلبت فيها:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

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

إرسال رسالة إلى الدردشة

يمكن للمستخدمين إرسال رسائل إلى المشاركين الآخرين بمجرد دخولهم في الدردشة. افترض أن المستخدم النشط يرسل حوالي 10 رسائل يوميًا.

ستؤدي كل رسالة مرسلة إلى كتابتين للمستند: كتابة واحدة إلى مجموعة messages الفرعية للدردشة وكتابة واحدة إلى المستند الأصلي للدردشة لتحديث الطابع الزمني lastUpdated وبيانات التعريف الأخرى.

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

الاستخدام المفوتر لمهام المسؤول

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

بالنسبة للاستعلامات المجمعة مثل count() ، يتم محاسبتك على قراءة مستند واحد لكل دفعة تصل إلى 1000 إدخال فهرس مطابق للاستعلام. يؤدي تشغيل هذا التجميع اليومي إلى إضافة الرسوم الشهرية التالية:

صغير
(50 ألف عملية تثبيت)

مقابل 50000 عملية تثبيت للتطبيق (5000 وحدة يومية يومية): 0.0009 USD/الشهر

5000 مستخدم نشط * 10 رسائل جديدة لكل مستخدم = 50000 مستند رسائل جديد يوميًا

تم حساب 50000 مستند / 1000 مطابقة للفهرس لكل تكلفة قراءة = 50 قراءة

50 قراءة في اليوم * 30 يومًا = 1500 قراءة في الشهر

1500 قراءة شهريًا * 0.06/100000 سعر القراءة = 0.0009 USD شهريًا

واسطة
(مليون عملية تثبيت)

مقابل 1,000,000 عملية تثبيت للتطبيق (100,000 مستخدم نشط يوميًا): 0.018 USD/الشهر

100,000 مستخدم نشط * 10 رسائل جديدة لكل مستخدم = 1,000,000 مستند رسائل جديد يوميًا

تم حساب 1,000,000 مستند / 1,000 مطابقة للفهرس لكل تكلفة قراءة = 1,000 قراءة

1000 قراءة يوميًا * 30 يومًا = 30000 قراءة شهريًا

30000 قراءة شهريًا * .06/100000 سعر القراءة = 0.018 USD شهريًا

كبير
(10 مليون عملية تثبيت)

مقابل 10,000,000 عملية تثبيت للتطبيق (1,000,000 مستخدم نشط يوميًا): 0.18 USD

1,000,000 مستخدم نشط * 10 رسائل جديدة لكل مستخدم = 10,000,000 مستند رسائل جديد يوميًا

تم حساب 10,000,000 مستند / 1,000 مطابقة للفهرس لكل تكلفة قراءة = 10,000 قراءة

10000 قراءة يوميًا * 30 يومًا = 300000 قراءة شهريًا

300,000 قراءة شهريًا * .06/100000 سعر القراءة = 0.18 دولار شهريًا

المزايا المضمنة: خدمات مجانية لتطبيقك

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

  • الوصول المباشر إلى العميل: يتم الوصول إلى Cloud Firestore مباشرةً من رمز العميل الخاص بك باستخدام حزم SDK الأصلية الخاصة بنا. وهذا يعني أنك لا تحتاج إلى إنشاء خادم API وتشغيله لتوصيل عملاء الهاتف المحمول بقاعدة البيانات.
  • موازنة التحميل: نظرًا لأن Cloud Firestore يقوم بالتحجيم تلقائيًا لدعم حركة المرور إلى قاعدة البيانات الخاصة بك، فلن تحتاج إلى تشغيل موازن التحميل.
  • وقت تشغيل الخادم: تعمل قواعد بيانات Cloud Firestore على خوادم Google Cloud، مما يوفر وقت تشغيل شهريًا يزيد عن 99% .
  • المصادقة: قم بمصادقة عدد غير محدود من المستخدمين ببساطة وأمان باستخدام مصادقة Firebase . تتكامل مصادقة Firebase مباشرةً مع Cloud Firestore، لذلك لا تحتاج إلى تشغيل خدمة المصادقة الخاصة بك.
  • إشعارات الدفع: أرسل الرسائل والإشعارات باستخدام Cloud Messaging .
  • منتجات Firebase الأخرى: يمكنك دمج منتجات Firebase الأخرى دون أي تكلفة، بما في ذلك اختبار A/B، والتحليلات، وCrashlytics، ومراقبة الأداء، والتكوين عن بُعد. تعرف على المزيد حول منتجات Firebase الأخرى وأسعار Firebase .