استخدِم هذا المثال الواقعي لتطبيق محادثة أساسي لقياس Cloud Firestore استخدامك وتكاليفك. هذا التقدير ليس دقيقًا، ولكنه يمكن أن يساعدك في معرفة كيفية احتساب رسوم استخدامك Cloud Firestore بشكلٍ أفضل.
نظرة عامة: التكاليف حسب مستوى الاستخدام
لتوضيح التكاليف المعتادة، نأخذ مثالاً على تطبيق محادثات يمكن للمستخدمين فيه
بدء محادثات مع مشاركَين أو أكثر. يمكن للمستخدمين الاطّلاع على محادثاتهم النشطة في قائمة وقراءة الرسائل وإرسالها. في هذا المثال، سنستخدم
الأسعار لمناطق متعددة في أمريكا الشمالية (على وجه التحديد nam5
).
الافتراضات
وننصحك بالأخذ في الاعتبار الافتراضات التالية حول الاستخدام وتخزين البيانات:
- يمثّل "المستخدِمون النشطون يوميًا" %10 من إجمالي عمليات تثبيت التطبيق. يمكنك تقدير تكاليفك اليومية باستخدام تقدير تقريبي لعدد المستخدمين النشطين يوميًا (DAUs). هؤلاء هم المستخدمون الذين يفتحون تطبيقك ويستخدمونه بشكل نشط في يوم معيّن، ويشكّلون عادةً مجموعة فرعية صغيرة من إجمالي عمليات تثبيت تطبيقك. في العمليات الحسابية أدناه، قدّرنا عدد المستخدمين اليوميين النشطين بنسبة% 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 آلاف مستخدِم نشط يوميًا | = | 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 من إجمالي عمليات تثبيت التطبيق، يمثّل هذا الرقم إجمالي عدد المستخدمين الذين ثبَّتوا تطبيقك.
متوسطة
(مليون عملية تثبيت)
مقابل 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 كيلوبايت / مستخدم نشط يوميًا من عمليات الخروج اليومية * 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 لثلاث tasks معتادة للمستخدمين:
- عدد القراءات: (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 دولار أمريكي في الشهر
متوسطة
(مليون عملية تثبيت)
بالنسبة إلى 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/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.