Разработка масштабируемой модели каналов на основе Firebase

Вопрос:

Как спроектировать социальную сеть с поддержкой Firebase в качестве бэкенда, который масштабируется?

Возможные ответы :

Решение «MVP» заключается в разработкеfeeds корневой дочерний элемент, по одному для каждого пользователя, и добавляйте новые сообщения от следующего пользователя в лентах каждого подписчика.

users
  user1
    name: bob
  user2
    name: alice
    follows: 
      user1: true

posts
  post1
     author: user1
     text: 'Hi there'

feeds
  user2
    post1: true

Это работает хорошо, и демонстрируется вFirefeed проект. Но это плохо масштабируется: если Кэти Перри захочет что-то опубликовать, ее мобильный телефон должен будет писать в миллионы каналов.

Следовательно, решение сообщается вэтот ТАК вопрос делегировать эту операцию на серверный процесс.

Моя проблема в том, что Firebase - это решение «без бэкенда», и это главная причина, по которой я его использую, поэтому я хотел бы убедиться, что нет абсолютно никакой возможности реализовать эту функцию без сервера.

Что делать, еслиfeeds ребенок удален в приведенной схеме?

Затем сделайте это:

baseRef.child('posts')
       .orderBy('author')
       .whereIn(baseRef.child('users/user2/follows').keys())

К несчастью,whereIn не существует ни в Firebase API, ни в подзапросах :(

Любая другая структура модели возможна без необходимости сервера?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос