mycode是:
exports.getTotalPrice = functions.https.onRequest((req, res) => {
admin.database().ref('carresult').once('value').then(function(snapshot) {
var totalPrice = snapshot.val().price;
res.status(200).send(totalPrice);
});
});
PS。错误65000是我需要它发回的值。
答案 0 :(得分:2)
Express documentation for res.send([body])表示:
body参数可以是Buffer对象,String,对象或 阵列
在您的数据库中,/carresult/price
可能存储为数字,使totalPrice
成为send()
的无效参数。您可以选择将其存储为String
,然后在传递给String
之前将其转换为send()
,或者将其保留为数字并将其作为对象的属性发回:{{1 }}
send({price: totalPrice})
另请注意,在HTTPS函数中执行数据库读取(异步)是有风险的,正如Frank van Puffelen在this answer中解释的那样:
请注意,这是一个棘手的模式。发生对数据库的调用 异步,可能需要一些时间才能完成。在等待 这样,HTTP功能可能会超时并被Google终止 云功能系统......作为一般规则,我建议使用Firebase Database SDK或其REST API来访问数据库,而不是依赖HTTP功能作为中间件。