我想更新我得到的每一个文档。所以首先我得到所有相关的文档,每一个得到新的推送通知,但我想设置每一个文档的数据。
代码如下:
const pushok = await db.collection('Users')
.where('aktiv', '==', 1)
.where('uzemmod', '==', 1).get();
if (pushok.empty) {
console.log('No matching documents.');
} else {
pushok.forEach(doc => {
//HERE I WOULD LIKE TO SET doc.data().lastpush: time;
let payload = {
notification: {
title: 'Üzeneted érkezett!',
body: 'Üzenet',
sound: 'default',
},
data: {
"messageid": "1"
}
};
admin.messaging().sendToDevice(doc.data().notificationtoken, payload);
console.log('Üzenet elküldve', doc.data().notificationtoken);
});
}
我不知道如何在foreach中更新。批量写入可以工作,但我想我可能需要超过500个,所以需要事务?或者最简单的方法是什么?
1条答案
按热度按时间icnyk63a1#
由于您希望并行执行数量可变的异步Firebase方法调用(并且您可能有超过500个Firestore文档更新),因此需要使用
Promise.all()
,如下所示:注意,我们构建了一个数组,其中包含Firestore更新和通知发送返回的Promises,并将其传递给
Promise.all()
。