【发布时间】:2018-07-03 11:49:42
【问题描述】:
我在部署函数时遇到错误,因为“解析函数触发器时发生错误”和 firestore.collection('orders').get() 行中的语法错误 syntax error: unexpected token '.'。我的节点版本是 v8.11.3。
我尝试了更新节点版本的命令:
npm install -g firebase-tools@latest 但错误仍然保持不变。你能帮我解决这个问题吗?
这是我的代码。
const functions = require('firebase-functions');
var admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
var firestore = admin.firestore();
exports.webhook = functions.https.onRequest((request, response) => {
console.log("request.body.result.parameters: ", request.body.result.parameters);
switch(request.body.result.action)
{
case'bookhotel':
let params = request.body.result.parameters;
firestore.collection('orders').add(params)
.then((docRef) => {
console.log("docRef: ", docRef);
response.send({
speech:
`${params["name"]} your hotel booking request for ${params["room-type"]} room is forwarded for ${params["persons"]} persons,
we will contact you on ${params["email"]} soon.`
});
return;
})
.catch((e => {
console.log("error:", e);
response.send({
speech: "something went wrong when writing on database"
});
}))
break;
case'showbooking':
firestore.collection('orders').get()
.then((querySnapshot))=>{
var orders=[];
querySnapshot.forEach((doc)=>{orders.push(doc.data()) });
var speech=`you have ${orders["length"]} orders \n`;
orders.forEach((eachOrder,index)=>{
speech=`number ${index+1} is ${eachOrder["room-type"]} room for
${eachOrder["persons"]} persons, ordered by ${eachOrder["name"]},
contact email is ${eachOrder["email"]}`
})
response.send({
speech:speech
});
})
.catch((err)=>{
console.log('error getting documents',err);
response.send({
speech: "something went wrong when reading from database"
})
})
break;
default:
response.send({
speech:"no action matched in webhook"
})
}
});
【问题讨论】:
标签: javascript node.js firebase google-cloud-functions