#firebase-realtime-database #google-cloud-functions
#firebase-realtime-database #google-cloud-функции
Вопрос:
С помощью моего кода я могу подсчитать количество документов в базе данных Firebase Realtime, но мне нужно, чтобы у них был счетчик для каждого groupId, который затем сохраняется в другом пути для каждого groupId.
Здесь указан путь к документам, которые я считаю
сообщения /{groupId}
Я хочу сохранить его здесь, каждый счетчик для своего groupId
итоговые сообщения / groupId
exports.messageCounter = functions.database.ref('/messages/{groupId}').onWrite((change, context) => {
const data = change.after.val();
const group = data.groupId;
const count = Object.keys(data).length;
return admin.database().ref('totalmessages/' group).child('_count').set(count);
});
В настоящее время код возвращает:
также он перезаписывает «_Count» новыми данными и не создает несколько деревьев.
Комментарии:
1. Что делает ваш код сейчас, что работает не так, как вы ожидаете?
2. @DougStevenson пожалуйста, ознакомьтесь с обновленным вопросом.
3. Похоже,
group
не определено. Также в вашем вопросе говорится, что вы хотите выполнить запись на узел с именем «messageCounter», но ваш код записывает в «totalmessages». Чего вы действительно хотите здесь достичь?4. @DougStevenson Что касается «messageCounter» и «totalmessages» — только что реализованный и отредактированный вопрос, код для этого правильный. Как я могу определить «Группу»?
Ответ №1:
Если вы пытаетесь получить подстановочный знак groupId при вызове вашей функции, вы захотите использовать контекст для этого:
const group = context.params.groupId;
Смотрите документацию для получения более подробной информации.
Комментарии:
1. Большое спасибо! Отлично работает