Firebase:根据存储在正文中的ID更新文档
我正在构建一个简单的Firebase API来更新一个简单的值。我正在向url appname.cloudfunctions.net/app/api/update/发送一个PUT请求,请求正文中要更新的文档ID为:Firebase:根据存储在正文中的ID更新文档,firebase,Firebase,我正在构建一个简单的Firebase API来更新一个简单的值。我正在向url appname.cloudfunctions.net/app/api/update/发送一个PUT请求,请求正文中要更新的文档ID为: { "id": 10, "value1": 11 } 然后我的函数如下所示: app.put('/api/update/', async (req, res) => { try { const s
{
"id": 10,
"value1": 11
}
然后我的函数如下所示:
app.put('/api/update/', async (req, res) => {
try {
const sensorId = req.body.id;
await db.collection('sensors').doc(sensorId).set({
latestUpdateTimestamp: admin.firestore.FieldValue.serverTimestamp(),
latestValue1: req.body.value1,
}, {merge: true});
return res.status(200).send();
} catch (error) {
console.log(error);
console.log(req.body);
return res.status(500).send(error);
}
});
问题是,我得到一个错误:错误:参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串。请注意,console.log(req.body)显示了正确的ID和body中的value1
如何修复此问题?我的const sensorId作为一个数字发送,我需要将其更改为字符串以使其正常工作:
const sensorId=req.body.id.toString()
尝试console.log(req.body)
并查看显示的内容——该错误表明req.body.id
是未定义的。是的,工作正常,id显示在那里。如果有帮助的话,这是对这里另一个问题的代码的轻微修改:它说路径必须是非空字符串
,但“id”:10
。这可能是原因吗?@windowsilly干杯是的,现在已经解决了,必须加上。toString()