我想写一个cloud函数,监听是否在users
的某个文档的following
子集合中创建了一个新文档。但是,以前创建的用户文档可能没有following
子集合。
换句话说,我想要一个响应db.collection(“users”).doc(“doc_id1”).collection(“following”).doc(“doc_id2”).set(new_document)
的云,我已经将云函数编写为
exports.create_friend_request_onCreate = functions.firestore
.document("users/{user_id}/{following}/{following_id}")
.onCreate(f2);
字符串
而f2
的实现则写在其他文件中
exports.f2 = async function(snapshot) {
//some code
}
型
但是,在子集合中创建文档时,我得到以下错误Error: Value for argument "documentPath" is not a valid resource path. Path must be a non-empty string.
个
有谁能给我解释一下这里出了什么问题吗?
5条答案
按热度按时间inkz8wg91#
我有一个同样的问题,这个问题的原因是文件路径必须是一个字符串。
collection("questions").doc(21)
是错误的。collection("questions").doc("21")
是工作。"users/{String(user_id)}/{following}/{String(following_id)}"
bq3bfh9z2#
正确的路径应该是
'users/{user_id}/following/{following_id}'
,显然双引号不能用作路径。vsikbqxv3#
更改此:
字符串
变成这样:
型
collection
不应该有{wildcard}
ftf50wuq4#
你需要把它们作为字符串。最简单的方法是格式化字符串。
用法:
${your_any_type_value}
注意:
undefined
或null
将显示为“null”和“undefined”。字符串
w51jfk4q5#
这发生在我身上,因为在我的控制器(API)中,我有这样的东西。
字符串
如果是这样的话,你需要将req.params改为req.body,如下所示:
型