我正在使用Flutter构建移动应用程序,我想使其支持自动上推通知,然后使用Firebase云消息传递。 我写的功能:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
//admin.initializeApp();
var msgData;
exports.offerTrigger = functions.firestore.document('requests/{requestId}'
).onCreate((snapshot,context) => {
msgData = snapshot.data();
admin.firestore().Collection('pushtokens').get().then((snapshots) => {
var tokens = [];
if(snapshots.empty){
console.log('No devices');
}
else {
for(var token of snapshots.docs){
tokens.push(token.data().deviceId);
}
var payload = {
"notification" : {
"title" : "From" + msgData.Name,
"body" : "Request " + msgData.requestDetial,
"sound" : "default"
},
"data" : {
"SenderName" : msgData.Name,
"message" : msgData.requestDetial
}
}
admin.messaging().sendToDevice(tokens,payload).then((respone) => {
console.log("pushed them all");
}).catch((err) => {
console.log(err);
});
}
})
})
部署功能后,当我添加一些文档时,firebase功能日志中出现错误 错误:
TypeError:admin.firestore(...)。集合不是函数
在exports.offerTrigger.functions.firestore.document.onCreate(/user_code/index.js:9:23)
在cloudFunctionNewSignature(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:114:23)
在cloudFunction(/user_code/node_modules/firebase-functions/lib/cloud-functions.js:144:20)
在/var/tmp/worker/worker.js:827:24
在process._tickDomainCallback(内部/进程/next_tick.js:135:7)
如何解决此错误?
答案 0 :(得分:0)
更改此:
admin.firestore().Collection('pushtokens').get().then((snapshots) => {
对此:
admin.firestore().collection('pushtokens').get().then((snapshots) => {
来自文档:
获取一个
CollectionReference
实例,该实例引用指定路径上的集合。