部署功能时出现错误:error Parsing error: Unexpected token saveLastReview
。
我需要获取一些文档值,然后调用url请求,然后在文档中设置数据。
async function getValue() {
try {
var doc = await admin.firestore().collection('mycollec').doc('mydoc').get();
var data = doc.data()
return data;
} catch(e) {
console.log(e);
return null;
}
}
async function saveLastReview(authorName) {
var rating = "4";
var title = "my title";
var content = "my content";
let data = {
rating : rating,
title: title,
content: content
};
try {
var doc = await admin.firestore().collection('mycollec').doc('mydoc').collection('reviews').doc(authorName).set(data);
return doc;
} catch(e) {
console.log(e);
return null;
}
}
app.get('/hello-world', async(req, res) => {
var data = await getValue();
if (data === null) {
request("https://itunes.apple.com/gb/rss/customerreviews/id=284882215/sortBy=mostRecent/json", function (error, response, body) {
//code to get authorname from the response
var result = await saveLastReview(authorname);
//check if doc was set correctly
//do something
})
}
return res.status(200).send("sent !");
});
module.exports.app = functions.https.onRequest(app);
我对异步/等待不是很熟悉。我没有找到问题。
答案 0 :(得分:5)
您在request
中的回调似乎缺少async
关键字。可能会导致您看到的错误,该错误与您await
所在的行有关,这意味着非异步功能中没有任何内容。
应该是:
//...
request("https://itunes.apple.com/...", async function (error, response, body) {
//...
编辑:如评论中所述,也许不是。但是我也注意到saveLastReview
本身就是一个async
函数,而且我不知道async
函数在被await
修饰时的行为。如果我首先提到的内容不能解决问题,也许是另一种调查途径。