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

Posted

技术标签:

【中文标题】参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串【英文标题】:Value for argument "documentPath" is not a valid resource path. Path must be a non-empty string 【发布时间】:2020-09-17 19:03:20 【问题描述】:

我想写一个云函数来监听是否在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.

谁能给我解释一下这里出了什么问题?

【问题讨论】:

【参考方案1】:

改变这个:

  .document("users/user_id/following/following_id")

进入这个:

  .document("users/user_id/following/following_id")

collection 不应该有 wildcard

【讨论】:

进行更改和部署后我仍然收到错误【参考方案2】:

正确的路径应该是'users/user_id/following/following_id',显然双引号不能作为路径。

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串的主要内容,如果未能解决你的问题,请参考以下文章

cURL下载Zip文件 - “参数不是有效的文件句柄资源”

检查数组是不是包含Java中的值的最有效方法? [复制]

实现 phpwebsocket 库的错误“不是有效的 Socket 资源”

setter 方法是不是必须有一个参数?

Oauth2:资源服务器应该如何知道访问令牌是不是有效?

提供的值“moz-chunked-arraybuffer”不是有效的“responseType”