الاطّلاع على مثال على أسعار Cloud Firestore

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

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

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

الافتراضات

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

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

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

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

مقابل 50,000 عملية تثبيت للتطبيق (5,000 مستخدم نشط يوميًا): 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 ألف عملية) =   ‫0.8 * 0.18 دولار أمريكي
‫0.14 دولار أمريكي في اليوم × 30 يومًا = 4.20 دولار أمريكي
 
‫100 ألف عملية حذف يومية في المجموع =   ‫20 ألف عملية حذف بدون تكلفة + (80 ألف عملية حذف بتكلفة 0.02 دولار أمريكي لكل 100 ألف عملية) =   ‫0.8 * 0.02 دولار أمريكي
‫0.02 دولار أمريكي في اليوم × 30 يومًا = 0.60 دولار أمريكي
تكاليف التخزين/الشبكات
إجمالي التكلفة الشهرية = 1.04 دولار أمريكي في الشهر
‫20 كيلوبايت / مستخدم نشط يوميًا من البيانات الصادرة يوميًا * 5,000 مستخدم نشط يوميًا =   ‫100 ميغابايت من البيانات الصادرة يوميًا * 30 =   ‫3 غيغابايت من البيانات الصادرة من الشبكة شهريًا
نقل البيانات بدون تكلفة بسعة 3 غيغابايت = بدون تكلفة1
 
‫15 كيلوبايت لتخزين الرسائل اليومية لكل مستخدم نشط يوميًا + 3 كيلوبايت لكل عملية تثبيت2 =   ‫45 كيلوبايت من مساحة التخزين / عدد المستخدمين النشطين يوميًا * 5,000 مستخدم نشط يوميًا =   ‫225 ميغابايت من مساحة التخزين اليومية / عدد المستخدمين النشطين يوميًا * 30 =   ‫6.75 غيغابايت من سعة التخزين المطلوب استخدامها شهريًا
‫1 غيغابايت من مساحة التخزين المجانية + (5.75 * 0.18 دولار أمريكي) = 1.04 دولار أمريكي في الشهر

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

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

مقابل مليون عملية تثبيت للتطبيق (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 كيلوبايت / مستخدم نشط يوميًا من البيانات الصادرة يوميًا * 100 ألف مستخدم نشط يوميًا =   ‫2 غيغابايت من البيانات الصادرة يوميًا * 30 =   60 غيغابايت من البيانات الصادرة من الشبكة شهريًا
‫10 غيغابايت من البيانات الصادرة بدون تكلفة + (50 غيغابايت من البيانات الصادرة * 0.12 دولار أمريكي لكل غيغابايت) = 6.00 دولار أمريكي في الشهر
 
‫15 كيلوبايت من مساحة تخزين الرسائل اليومية لكل مستخدم نشط يوميًا + 3 كيلوبايت من مساحة التخزين لكل عملية تثبيت1 =   ‫45 كيلوبايت من مساحة التخزين / المستخدمون النشطون يوميًا * 100 ألف مستخدم نشط يوميًا =   ‫4.5 غيغابايت من مساحة التخزين اليومية / عدد المستخدمين النشطين يوميًا * 30 =   استخدام سعة تخزين تبلغ 135 غيغابايت شهريًا
‫1 غيغابايت من مساحة التخزين المجانية + (134 غيغابايت × 0.18 دولار أمريكي لكل غيغابايت) = 24.12 دولار أمريكي في الشهر

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

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

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

تكاليف القراءة والكتابة
إجمالي التكلفة الشهرية = الإجمالي: 2,637.90 دولار أمريكي في الشهر
‫80 مليون قراءة يومية في المجموع =   50 ألف عملية قراءة بدون تكلفة + (79.95 مليون عملية قراءة بسعر 0.06 دولار أمريكي لكل 100 ألف عملية قراءة) =   799.5 * $0.06
‫47.97 دولار أمريكي في اليوم * 30 = 1,439.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 كيلوبايت / مستخدم نشط يوميًا من البيانات الصادرة يوميًا * مليون مستخدم نشط يوميًا =   ‫20 غيغابايت من البيانات الصادرة يوميًا * 30 =   600 غيغابايت من البيانات الصادرة من الشبكة شهريًا
‫10 غيغابايت من نقل البيانات بدون تكلفة + (590 غيغابايت من نقل البيانات * ‏0.12 دولار أمريكي لكل غيغابايت) = ‏70.80 دولار أمريكي في الشهر
 
‫15 كيلوبايت من مساحة تخزين الرسائل اليومية لكل مستخدم نشط يوميًا + 3 كيلوبايت من مساحة التخزين لكل عملية تثبيت1 =   ‫45 كيلوبايت من مساحة التخزين / المستخدمون النشطون يوميًا * مليون مستخدم نشط يوميًا =   ‫45 غيغابايت من مساحة التخزين اليومية / عدد المستخدمين النشطين يوميًا * 30 =   ‫1,350 غيغابايت من سعة التخزين المستخدَمة شهريًا
(مساحة تخزين مجانية بسعة 1 غيغابايت) + (1349 غيغابايت * 0.18 دولار أمريكي لكل غيغابايت) = 242.82 دولار أمريكي في الشهر

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

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

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

بالنسبة إلى نموذج تطبيق المحادثة، تكون بنية البيانات على النحو التالي:

  • 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 عملية قراءة لكل مستخدم يوميًا. ومع ذلك، يمكن أن تؤدي طلبات البحث الأكثر كفاءة، مثل الطلب الوارد في المثال التالي، إلى تقليل هذا العبء.

In the example below, we limit the query to new chats using a timestamp of each successful fetch, stored by the app:

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()، يتم تحصيل رسوم منك مقابل قراءة مستند واحد لكل دفعة تصل إلى 1,000 إدخال فهرس يتطابق مع طلب البحث. يؤدي تشغيل هذا التجميع اليومي إلى إضافة الرسوم الشهرية التالية:

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

مقابل 50,000 عملية تثبيت للتطبيق (5,000 مستخدم نشط يوميًا): 0.0009 دولار أمريكي في الشهر

‫5,000 مستخدم نشط * 10 رسائل جديدة لكل مستخدم = 50,000 مستند رسالة جديدة في اليوم

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

‫50 عملية قراءة في اليوم × 30 يومًا = 1,500 عملية قراءة في الشهر

‫1,500 عملية قراءة شهريًا * ‎0.06/100,000 سعر عملية القراءة = ‎0.0009 دولار أمريكي شهريًا

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

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

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

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

‫1,000 عملية قراءة في اليوم × 30 يومًا = 30,000 عملية قراءة في الشهر

‫30,000 عملية قراءة في الشهر * ‎0.06/100,000 سعر عملية القراءة = ‎0.018 دولار أمريكي في الشهر

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

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

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

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

‫10,000 عملية قراءة في اليوم * 30 يومًا = 300,000 عملية قراءة في الشهر

‫300,000 عملية قراءة في الشهر * سعر عملية القراءة ‎.06/100000 = ‏0.18 دولار أمريكي في الشهر

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

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

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