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

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

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

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

الافتراضات

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

  • يمثّل المستخدمون النشِطون يوميًا 10% من إجمالي عمليات تثبيت التطبيقات. يمكنك تقدير التكاليف اليومية باستخدام تقدير تقريبي للمستخدمين النشطين يوميًا. هؤلاء هم المستخدمون الذين يفتحون تطبيقك ويستخدمونه بشكل نشط في يوم معيّن، والذي يكون عادةً مجموعة فرعية صغيرة من إجمالي عمليات تثبيت تطبيقك. وفي العمليات الحسابية أدناه، قدّرنا المستخدمين النشطين يوميًا بنسبة% 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 ألف) =   .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 كيلوبايت / عدد المستخدمين النشطين يوميًا من الناتج اليومي * 5 آلاف مستخدم نشط يوميًا =   100 ميغابايت من البيانات الصادرة يوميًا * 30 =   مقدار خروج الشبكة شهريًا هو 3 غيغابايت
خروج بدون تكلفة بقيمة 3 غيغابايت = بدون تكلفة1
 
15 كيلوبايت مساحة تخزين الرسائل اليومية / المستخدمون النشطون يوميًا + 3 كيلوبايت مساحة تخزين / تثبيت2 =   45 كيلوبايت من مساحة التخزين لكل مستخدم نشط يوميًا * 5 آلاف مستخدم نشط يوميًا =   225 ميغابايت من مساحة التخزين اليومية / عدد المستخدمين النشطين يوميًا * 30 =   سعة تخزين تبلغ 6.75 غيغابايت شهريًا
مساحة تخزين بدون تكلفة 1 غيغابايت + (5.75 × 0.18 دولار أمريكي) = 1.04 دولار أمريكي في الشهر

1 إنّ مساحة تخزين الشبكة الشهرية التي تبلغ سعتها 10 غيغابايت لا تترتّب عليك أي تكاليف في Cloud Firestore.
2 بما أنّ افتراضنا هو أنّ المستخدمين النشطين يوميًا يبلغون 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 دولار أمريكي
 
إجمالي مليونَي عملية حذف يوميًا =   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 دولار أمريكي (أو ما يعادل هذا المبلغ بالعملة المحلية)

تكاليف قراءة/كتابة
إجمالي التكلفة الشهرية = الإجمالي: 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 كيلوبايت / عدد المستخدمين النشطين يوميًا من الناتج اليومي * مليون مستخدم نشط يوميًا =   20 غيغابايت من سعة التخزين اليومية * 30 =   600 غيغابايت من معدّل نفاذ الشبكة شهريًا
10 غيغابايت بدون تكلفة + (استخدام مقداره 590 غيغابايت * 0.12 دولار أمريكي لكل غيغابايت) = 70.80 دولار أمريكي في الشهر
 
15 كيلوبايت مساحة تخزين الرسائل اليومية / المستخدمون النشطون يوميًا + 3 كيلوبايت مساحة تخزين / تثبيت1 =   45 كيلوبايت من مساحة التخزين لكل مستخدم نشط يوميًا * مليون مستخدم نشط يوميًا =   45 غيغابايت من مساحة التخزين اليومية / مستخدم نشط يوميًا * 30 =   سعة تخزين تبلغ 1350 غيغابايت شهريًا
(مساحة تخزين بسعة 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 قراءة لكل مستخدم يوميًا. ومع ذلك، يمكن لطلبات البحث الأكثر فعالية، مثل تلك الواردة في المثال التالي، تقليل هذا التحميل.

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

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 مستند رسائل جديد في اليوم

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

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

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

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

بالنسبة إلى 1,000,000 عملية تثبيت للتطبيق (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 قراءة شهريًا * 0.06/100000 سعر القراءة = 0.18 دولار أمريكي شهريًا

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

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

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