В настоящее время я застрял в процессе получения классов, хранящихся как JSON в firebase (я преобразовал каждый экземпляр объекта в JSON и сохранил его). Моя основная цель - прочитать часть данных (при встрече, которая также является объектом JSON) в объекте JSON (meeting
), хранящемся как значение в Firestore, используя nodejs в облачных функциях, как и я. пытаюсь создать уведомление pu sh с помощью FCM.
Код, который у меня есть:
exports.meetingsUpdate = functions.firestore.document('/meetings/{meetingId}')
.onWrite(async (snap,context) => {
var data = snap.after.data()
data = await data.meeting;
const obj = await data.meeting;
const uids = await obj.groupUID;
const requestor = await obj.requesterName;
const payload = {
notification: {
title: 'Meeting request',
body: 'You have a meeting request from ' + requestor
}
}
for (uid of uids) {
// eslint-disable-next-line no-await-in-loop
const doc = await admin.firestore()
.collection('userNotificationTokens')
.doc(uid)
.get()
// eslint-disable-next-line no-await-in-loop
const token = await doc.data().token
// eslint-disable-next-line no-await-in-loop
const response = await admin.messaging().sendToDevice(token, payload)
.then((res) => {
console.log("Message sent successfully!", res.body)
});
}
return null;
})
Вот как выглядит отображение моей базы данных с атрибутом встречи, представляющим объект JSON
Я относительно новичок в Firebase и ее функциях, и у меня возникли ошибки, такие как
SyntaxError: неожиданный токен u в JSON в позиции 0
TypeError: Невозможно прочитать свойство groupUID из undefined
TypeError: Невозможно прочитать свойство 'token' неопределенного
в течение некоторого времени, несмотря на попытки различных подходов и настроек.
Первое значение встречи - это объект JSON, а второй атрибут встречи также является объектом JSON. Приносим извинения за несколько запутанное хранение данных.