如何在文档Firebase Function Express上创建子集合?



下面的代码片段是我如何实现在 PostID 的文档下创建likes子集合。我收到错误 404 未找到。我读过一个文档,如果集合下有文档,则可以创建集合。

帖子 -> 帖子 ID -> 喜欢

exports.updateLike = function (req, res) {
const postId = req.params.postId;
const userId = req.params.userId;
// return 404 not found 
db.collection("posts").doc(postId).collection("likes").add({
uid: userId,
createAt: Date.now()
}).catch(err => { 
console.log("--- Operation Failure ---")
return res.status(500).json(err);
});
}; 

是链接 图像 火力基地的收集和文件的结构

更新我在火力基地的控制台上检查并返回

TypeError: db.collection(...).doc(...).collection(...).set is not a function
at exports.updateLike (/srv/routes/posts.js:47:60)
at Layer.handle [as handle_request] (/srv/node_modules/express/lib/router/layer.js:95:5)
at next (/srv/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/srv/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/srv/node_modules/express/lib/router/layer.js:95:5)
at /srv/node_modules/express/lib/router/index.js:281:22
at param (/srv/node_modules/express/lib/router/index.js:354:14)
at param (/srv/node_modules/express/lib/router/index.js:365:14)
at param (/srv/node_modules/express/lib/router/index.js:365:14)
at Function.process_params (/srv/node_modules/express/lib/router/index.js:410:3)

这是当前代码。前面的代码也返回上述错误。

exports.updateLike = function (req, res) {
const postId = req.params.postId;
const userId = req.params.userId;
db.collection("posts").doc(postId).collection("likes").set({
uid: userId,
createAt: Date.now()
}).then(post => {
console.log("--- Operation Success ---")
return res.status(200).json(post.data());
}).catch(err => { 
console.log("--- Operation Failure ---")
return res.status(500).json(err);
});
}; 

取而代之的是:

db.collection("posts").doc(postId).collection("likes").add({ ... })

你应该这样写:

db.collection("posts").doc(postId).collection("likes").doc().set({ ... })

最新更新