استخدِم هذا المثال الواقعي لتطبيق دردشة أساسي لقياس استخدامك لـ 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,000 عملية كتابة بدون تكلفة + (80,000 عملية كتابة بسعر 0.18 دولار أمريكي لكل 100,000 عملية) | = | .8 * $0.18 | |
| 0.14 دولار أمريكي في اليوم * 30 = 4.20 دولار أمريكي | |||||
| 100 ألف عملية حذف إجمالية يوميًا | = | 20,000 عملية حذف بدون تكلفة + (80,000 عملية حذف بتكلفة 0.02 دولار أمريكي لكل 100,000 عملية حذف) | = | .8 * $0.02 | |
| 0.02 دولار أمريكي في اليوم * 30 يومًا = 0.60 دولار أمريكي | |||||
| تكاليف التخزين/الشبكات | |||||||
|---|---|---|---|---|---|---|---|
| إجمالي التكلفة الشهرية = 1.04 دولار أمريكي في الشهر | |||||||
| 20 كيلوبايت لكل مستخدم نشط يوميًا من معدل نقل البيانات اليومي * 5,000 مستخدم نشط يوميًا | = | 100 ميغابايت من حركة الخروج اليومية * 30 | = | 3 غيغابايت من نقل البيانات خارج الشبكة شهريًا | |||
| 3 غيغابايت من حركة الخروج بدون تكلفة = بدون تكلفة1 | |||||||
| مساحة تخزين الرسائل اليومية 15 كيلوبايت / المستخدِمون النشطون يوميًا + مساحة تخزين 3 كيلوبايت / عملية تثبيت2 | = | 45 كيلوبايت من مساحة التخزين / المستخدمون النشطون يوميًا * 5000 مستخدم نشط يوميًا | = | 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,000 عملية كتابة بدون تكلفة + (1,980,000 عملية كتابة بسعر 0.18 دولار أمريكي لكل 100,000 عملية) | = | 19.8 * $0.18 | |
| 3.56 دولار أمريكي في اليوم * 30 = 106.80 دولار أمريكي | |||||
| 2 مليون عملية حذف إجمالية يوميًا | = | 20,000 عملية حذف بدون تكلفة + (1,980,000 عملية حذف بسعر 0.02 دولار أمريكي لكل 100,000 عملية حذف) | = | 19.8 * $0.02 | |
| 0.40 دولار أمريكي في اليوم * 30 = 12.00 دولار أمريكي | |||||
| تكاليف التخزين/الشبكات | |||||||
|---|---|---|---|---|---|---|---|
| إجمالي التكلفة الشهرية = 30.12 دولار أمريكي في الشهر | |||||||
| 20 كيلوبايت / مستخدم نشط يوميًا من معدل نقل البيانات اليومي * 100 ألف مستخدم نشط يوميًا | = | غيغابايتَين من نقل البيانات اليومي * 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,000 عملية حذف بدون تكلفة + (19.98 مليون عملية حذف بسعر 0.02 دولار أمريكي لكل 100,000 عملية حذف) | = | 199.8 * $0.02 | |
| $4.00 / day * 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 مستند رسالة جديدة في اليوم
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 دولار أمريكي
مليون مستخدم نشط * 10 رسائل جديدة لكل مستخدم = 10 ملايين مستند رسالة جديدة في اليوم
10,000,000 مستند تم احتسابه / 1,000 تطابق فهرس لكل رسوم قراءة = 10,000 قراءة
10,000 عملية قراءة في اليوم * 30 يومًا = 300,000 عملية قراءة في الشهر
300,000 قراءة في الشهر * 0.06/100,000 سعر القراءة = 0.18 دولار أمريكي في الشهر
المزايا المضمّنة: خدمات بدون أي تكلفة لتطبيقك
في حين أنّ عمليات Cloud Firestore ومساحة التخزين وعرض النطاق الترددي للشبكة كلها تُعدّ استخدامًا قابلاً للفوترة، يمكنك أيضًا الاستفادة من مجموعة متنوعة من المزايا الأخرى بدون أي تكلفة إضافية. ضع في اعتبارك الخدمات التالية التي لا تتطلّب أي تكلفة عند مقارنة Cloud Firestore بخيارات قواعد البيانات الأخرى:
- الوصول المباشر إلى العميل: يمكن الوصول إلى Cloud Firestore مباشرةً من رمز العميل باستخدام حِزم SDK الأصلية، ما يعني أنّه ليس عليك إنشاء خادم واجهة برمجة تطبيقات وتشغيله لربط عملاء الأجهزة الجوّالة بقاعدة البيانات.
- موازنة التحميل: بما أنّ Cloud Firestore يتوسّع نطاقه تلقائيًا للتعامل مع عدد الزيارات إلى قاعدة البيانات، لن تحتاج إلى تشغيل أداة موازنة التحميل.
- مدة تشغيل الخادم: تعمل قواعد بيانات Cloud Firestore على خوادم Google Cloud، ما يوفّر مدة تشغيل شهرية تزيد عن% 99.
- المصادقة: يمكنك المصادقة على عدد غير محدود من المستخدمين بسهولة وأمان باستخدام Firebase Authentication. Firebase Authentication يتكامل مباشرةً مع Cloud Firestore، لذا لن تحتاج إلى تشغيل خدمة مصادقة خاصة بك.
- الإشعارات الفورية: إرسال الرسائل والإشعارات باستخدام Cloud Messaging
- منتجات Firebase الأخرى: يمكنك دمج منتجات Firebase الأخرى بدون أي تكلفة، بما في ذلك "اختبار A/B" و"إحصاءات Google" وCrashlytics و"مراقبة الأداء" و"الإعداد عن بُعد". مزيد من المعلومات حول منتجات Firebase الأخرى وأسعار Firebase