我想从firebase检索数据到javascrip。如何获取一些数据并将输出数据输出到变量。这是我的代码
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotificationUser = functions.firestore
.document('donorRequests/{donorRequestId}')
.onWrite((snapshot, context) => {
var tokens = [];
// var accounts = admin.firestore().collection('accounts').where("bloodType", '==', record.bloodType).where("rhesus", '==', record.rhesus).get();
for (const i of accounts) {
tokens.push(account.val().token);
}
var payload = {
"notification":{
'title': 'Hai Pahlawan!',
'body': 'Seseorang butuh kamu, yuk kita bantu :)'
}
}
admin.messaging().sendToDevice(tokens, payload);
})
并且错误消息是
TypeError:账户不可迭代
任何人都可以帮助我
正如您从API文档中看到的,Firestore的query.get()
返回一个承诺,该承诺通过QuerySnapshot对象解析。您将不得不使用该承诺来等待查询完成,然后在QuerySnapshot对象中迭代文档。
我建议从文档开始学习查询如何使用Firestore,并查看一些示例。
此外,您还必须了解JavaScript承诺如何与云函数协同工作。您必须正确处理来自查询的promise和来自sendToDevice
的promise,否则函数将无法工作。有关详细信息,请参阅文档。