"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن لـ Firestore تحسين أنظمة التغذية والمتابعة من أجل قابلية التوسع في الشبكات الاجتماعية؟

كيف يمكن لـ Firestore تحسين أنظمة التغذية والمتابعة من أجل قابلية التوسع في الشبكات الاجتماعية؟

تم النشر بتاريخ 2024-11-23
تصفح:743

How can Firestore optimize feed and follow systems for scalability in social networks?

تحسين أنظمة الخلاصة والمتابعة في Firestore

مشكلات قابلية التوسع في قاعدة البيانات في الوقت الفعلي في موقعك تطبيق الشبكة الاجتماعية السابق باستخدام Firebase Realtime Database، واجهت مشكلات في قابلية التوسع بسبب ما يلي:

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

لحل هذه المشكلات في Firestore، خذ بعين الاعتبار بنية قاعدة البيانات التالية:

ثلاث مجموعات عالية المستوى للمستخدمين، التالية، و المنشورات.
  • يمتلك المستخدمون مستندات تحتوي على حقول مثل الاسم والبريد الإلكتروني.
  • تحتوي المجموعة التالية على مستندات لكل مستخدم، مع مجموعات فرعية لمعرفات UID الخاصة بالمستخدمين الذين يتابعونهم.
  • تحتوي مجموعة المنشورات على مستندات لكل مستخدم، مع مجموعات فرعية لمعرفات المنشورات الخاصة بمشاركاتهم.
تم التحسين قابلية التوسع

تسمح هذه البنية بالتعامل الفعال مع المتابعين والمشاركات:

تخزين المتابعين في مجموعات فرعية يلغي الحاجة إلى نسخ البيانات.

    الفصل المنشورات في مجموعات فرعية تضمن أن استرداد أحدث المنشورات للمستخدمين الذين تتم متابعتهم يظل فعالاً، حتى مع وجود عدد كبير من Followers.
  • الاستعلام عن منشورات المستخدم المتابع

لعرض أحدث المنشورات في خلاصة المستخدم، يمكنك استخدام الاستعلام التالي:

Query query = rootRef.collection("posts/" uid "/userPosts") .orderBy("date", Query.Direction.DESCENDING).limit(3);

Query query = rootRef.collection("posts/"   uid   "/userPosts")
    .orderBy("date", Query.Direction.DESCENDING).limit(3);

تحسين حجم المنشورات الكبير

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3