2016-07-14 2 views
3

для моего нового приложения я использую этот методFirebase вентилятор-аут производительности на стороне клиента

https://firebase.googleblog.com/2015/10/client-side-fan-out-for-data-consistency_73.html

я думаю, что это хороший способ для человека, имеют ряд последователей менее чем 1 млн. Я стараюсь, чтобы это число было прекрасным. но для человека, у которого есть 10kk последователей, клиент попадает в срыв, потому что вы получаете большой массив последователей 10kk и сокращаете его, чтобы создать еще один большой массив из 10kk действий пути.

Я просто хотел указать на этот вопрос, я думаю, что это решение, которое работает только с приложением, в котором есть несколько пользователей. наконец, мы вынуждены использовать серверные решения. и это плохо для общей эффективности приложения.

+1

Для пользователя с таким количеством последователей вы, вероятно, должны, вероятно, запустить разветвление в серверном процессе. Не обязательно потому, что приложение будет разбиваться, но из-за использования полосы пропускания. –

ответ

0

будет приятной функцией, которая позволяет этой вещи со стороны firebase с меньшими затратами на стороне клиента. Я думаю, что такая функция. я сделать пример в JavaScript
var obj = { created: time } var path = "FollowersActivity/uid/" var followers = 'root.child("Followers").child("uid").val()' function massSaved(obj, path, followers)

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

Смежные вопросы