Query.data不是函数-Cloud函数



我有以下代码,下面是这个链接的示例:https://gist.github.com/CodingDoug/814a75ff55d5a3f951f8a7df3979636a。只是返回错误。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
exports.alertHelp = functions.firestore
.document('chamados/{userId}')
.onWrite(async (change, context) => {
try {
const snapshot = change.after;
const val = snapshot.data();
const tid = val.tid;

const collection = db.collection('permissons');
const query = await collection.where('tid', '==', tid).get();
const token = query.data().fcmToken;
const promises = [];
token.forEach(fcm => {
const p = admin.firestore().doc(`{userId}/${fcm}`).get();
promises.push(p);
});
const snapshots = await Promise.all(promises);
const results = [];
snapshots.forEach(snap => {
const data = snap.data().fcmToken;              
results.push(data);
})
console.log(results);

} catch (error) {
console.error(error)

}

});

错误

query.data不是函数

在行中:

const query = await collection.where('tid', '==', tid).get();

query将是QuerySnapshot类型的对象。从链接的API文档中可以看到,它没有data()方法。这就是错误试图告诉你的。

QuerySnapshot可以包含零个或多个DocumentSnapshot对象。您必须编写代码来检查和迭代这些结果。可以使用QuerySnapshot上的forEach方法或docs属性来执行此操作。您可能需要查看相关文档。

相关内容

  • 没有找到相关文章

最新更新