Я пытаюсь сохранить некоторые данные всем подписчикам группы всякий раз, когда в их группу добавляется новое событие. Кажется, это работает, но каким-то образом функции Firebase сохраняют только первое значение в моей базе данных Firebase в реальном времени.
Как вы видите в моем коде, я делаю это внутри forEach, а также без forEach. В зависимости от того, одно событие или групповое событие. За пределами forEach он работает отлично, и все данные сохраняются. Однако внутри forEach он сохраняет только «заголовок».
В console.log () он показывает все правильные значения в консоли функций firebase, но все равно не отображается в базе данных реального времени.
exports.saveNewEventToUsers = functions.database.ref('events/{groupId}/{eventId}').onCreate((snap, context) => {
const root = snap.ref.root;
// removed some consts for this example
// if the groupId equals the creator it's a single-event ELSE a group-event
if (groupId === data.creator) {
singleEvent = true;
return root.child(`userEvents/${groupId}/${eventId}`).set({ title, timestamp, singleEvent, creator, eventId, groupId });
} else {
return root.child(`groups/${groupId}/selected`).once('value', snapshot => {
snapshot.forEach(user => {
console.log(title, timestamp, singleEvent, creator, eventId, groupId);
return root.child(`userEvents/${user.key}/${eventId}`).set({ title, timestamp, creator, eventId, groupId });
}); // forEach
});
}
})
На изображении вы видите, что для одиночных событий он работает как положено, но для групповых событий он только сохраняет заголовок.
Кто-нибудь есть идеи, что вызывает проблему? Что я делаю неправильно? Заранее большое спасибо за помощь!