Firebase:根据存储在正文中的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

我正在构建一个简单的Firebase API来更新一个简单的值。我正在向url appname.cloudfunctions.net/app/api/update/发送一个PUT请求,请求正文中要更新的文档ID为:

{
    "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()