استخدِم هذا المثال الواقعي لتطبيق محادثة أساسي لقياس 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 ألف) | = | .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 لثلاث 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.