【发布时间】:2019-11-16 14:10:25
【问题描述】:
我有一个函数可以为我的 Cloud Firestore 数据库设置一个 JSON:
app.post('/api/add/collection/:collection_id/permission/:permission_id', (req, res) => {
(async () => {
try {
await db.collection(req.params.collection_id)
.doc(req.params.permission_id)
.set({
[req.body.id]: {
name: req.body.name,
email: req.body.email,
phone_number: req.body.phone_number
}
}, { merge: true}
);
return res.status(200).send('OK');
} catch (error) {
console.log(error);
return res.status(500).send('ERROR' + error);
}
})();
});
为了调用这个函数,我将 JSON 正文传递给 POST 请求:
https://.../app/api/add/collection/USER_ID/permission/PERMISSION_id
{
"id": 45,
"name": "Stack",
"email": "stack@overflow.com",
"phone_number": "+48 111 222 333"
}
一切正常,此请求将此 JSON 设置为以 id 作为键的映射,并将值设置为 name、email 和 phone_number。但是我想在一个请求中传递几个 JSON 以将多个地图对象添加到我的 NoSQL 文档中,例如:
[
{
"id": 45,
"name": "Stack",
"email": "stack@overflow.com",
"phone_number": "+48 111 222 333"
},
{
"id": 46,
"name": "Stack2",
"email": "stack2@overflow.com",
"phone_number": "+48 222 222 333"
},
{
"id": 47,
"name": "Stack3",
"email": "stack3@overflow.com",
"phone_number": "+48 333 222 333"
}
]
如何修改我的firebase函数来实现这个?
【问题讨论】:
-
您显示的最后一个代码块不是有效的 JSON 对象。当您发送要写入数据库的请求时,您能显示
req.body的输出吗? -
@FrankvanPuffelen 我已将 JSON 编辑为有效。我想发送如上所示的 JSON 数组。
标签: javascript firebase express google-cloud-firestore http-post