参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串

Pra*_*nth 8 node.js firebase google-cloud-functions google-cloud-firestore

我想编写一个云函数来侦听是否在following某些文档的子集合中创建了新文档users。然而,先前创建的用户文档可能没有子集合following

\n\n

换句话说,我想要一个响应db.collection(\xe2\x80\x9cusers\xe2\x80\x9d).doc(\xe2\x80\x9cdoc_id1\xe2\x80\x9d).collection(\xe2\x80\x9cfollowing\xe2\x80\x9d).doc(\xe2\x80\x9cdoc_id2\xe2\x80\x9d).set(new_document)\n的云,并且我已经将云函数编写为

\n\n
exports.create_friend_request_onCreate = functions.firestore\n  .document("users/{user_id}/{following}/{following_id}")\n  .onCreate(f2);\n
Run Code Online (Sandbox Code Playgroud)\n\n

f2并在其他文件中编写了实现

\n\n
exports.f2 = async function(snapshot) {\n //some code\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,在子集合中创建文档时,出现以下错误

\n\n

Error: Value for argument "documentPath" is not a valid resource path. Path must be a non-empty string.

\n\n

有人可以向我解释一下这里出了什么问题吗?

\n

小智 12

我遇到了同样的问题,问题的原因是文档路径必须是字符串。 collection("questions").doc(21)是错的。 collection("questions").doc("21")是工作。

-你必须确保变量是字符串。你可以使用"users/{String(user_id)}/{following}/{String(following_id)}"


Pet*_*dad 0

改变这个:

  .document("users/{user_id}/{following}/{following_id}")
Run Code Online (Sandbox Code Playgroud)

进入这个:

  .document("users/{user_id}/following/{following_id}")
Run Code Online (Sandbox Code Playgroud)

collection应该有一个{wildcard}