Сервер управления Firebase для поддержания счетчиков и агрегатов
Известно, что у firebase нет простого способа подсчета элементов. Я планирую создать приложение, которое в значительной степени зависит от счетчиков и других агрегатов. Я боюсь, что создание счетчиков этого приложения с правилами, предложенными здесь, будет невероятно сложным и сложным в обслуживании.
Поэтому я подумал об этом шаблоне:
Я буду хранить сервер, который будет прослушивать все элементы, введенные в базу данных, и этот сервер будет обновлять все счетчики и агрегаты. Сервер будет содержать UID специального администратора, который сможет обновлять только счетчики.
- Данные запроса Firebase
- Ограничение скорости в Firebase в правилах безопасности?
- Firebase Нет свойств для сериализации, найденных в classе
- Как вы включаете имя пользователя при хранении электронной почты и пароля с помощью Firebase (BaaS) в приложении для Android?
- Как я могу получить данные из firebase на мой адаптер
Таким образом, пользователям не нужно будет загружать целые узлы, чтобы получить счет, плюс мне не придется решать проблемы, возникающие при обслуживании клиентов клиентами.
Имеет ли смысл этот шаблон? Я что-то упускаю?
- Отображение данных Firebase в ListView
- Как подключиться к нескольким базам данных firebase из приложения Android
- Как заблокировать базу данных Firebase любому пользователю из определенного (электронной почты) домена?
- Не удается получить доступ к базе данных FireBase через ошибку HTTP / REST 403 Запрещено
- Класс java.util.Map имеет общие параметры типа, вместо этого используйте GenericTypeIndicator
- Firebase runTransaction не работает - MutableData имеет значение null
- Производительность Firebase: Сколько детей на узел?
- Firebase: режим только для чтения и не в режиме реального времени активирован для улучшения производительности браузера
Firebase недавно выпустила функции облака. Как упоминалось в документации :
Облачные функции – это размещенная, приватная и масштабируемая среда Node.js, где вы можете запускать код JavaScript.
С облачными функциями вам не нужно создавать собственный сервер. Вы можете просто написать функции JavaScript и загрузить его в Firebase. Firebase будет отвечать за запуск функций всякий раз, когда происходит событие.
Например, допустим, вы хотите подсчитать количество понравившихся сообщений. У вас должна быть структура, подобная этой:
{ "Posts" : { "randomKey" : { "likes_count":5, "likes" : { "userX" : true, "userY" : true, "userZ" : true, ... } } } }
И ваша функция JavaScript будет написана следующим образом:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); // Keeps track of the length of the 'likes' child list in a separate attribute. exports.countlikes = functions.database.ref('/posts/$postid/likes').onWrite(event => { return event.data.ref.parent().child('likes_count').set(event.data.numChildren()); });
Этот код увеличивает переменную likes_count
каждый раз, когда появляется новая запись на узле типа.
Этот образец доступен на GitHub .