【发布时间】:2019-07-04 14:58:00
【问题描述】:
我正在尝试向订阅某个主题的用户发送云消息。问题是我现在在 updateRecord 上得到了一个无限循环。我试图在这里if(newData.count == prevData.count) return null; 捕捉它,但这不起作用。我认为发生的事情是我正在更新 firestore 文档中的记录,然后再次调用更新函数导致循环。
exports.updateRecord = functions.firestore.document("records/{recordsID}").onUpdate((change, context) => {
const newData = change.after.data();
const prevData = change.before.data();
if(newData.count == prevData.count) return null;
let newCount = prevData.count + 1;
const doc = admin.firestore().doc(`/records/{recordsID}`);
doc.set({ count: newCount })
// TODO: - Requires testing
var topic = "global";
const payload = {
data: {
count: `${newCount}`,
firebaseId: `${newData.firebaseId}`,
type: "updateRecord",
}
};
return admin.messaging().sendToTopic(topic, payload)
.then((response) => {
console.log('Message sent successfully');
})
.catch((error) => {
console.log('Error sending message:', error);
});
});
【问题讨论】:
-
我在这里回答了stackoverflow.com/a/60207286/5295747。希望对其他人有所帮助
标签: node.js google-cloud-firestore google-cloud-functions