复制文档的简单云功能出错

我正在创建我的第一个云函数,它在创建后将子集合中的文档简单地复制journal到子集合中。activites我希望复制的文档具有相同的postId. 功能日志显示


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

at Object.validateResourcePath (/workspace/node_modules/@google-cloud/firestore/build/src/path.js:406:15)

at CollectionReference.doc (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:1982:20)

at exports.onCreateJournal.functions.firestore.document.onCreate (/workspace/index.js:21:8)

at cloudFunction (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:134:23)

at Promise.resolve.then (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:198:28)

at process._tickCallback (internal/process/next_tick.js:6

这是云函数


exports.onCreateJournal = functions.firestore

  .document("/users/{userId}/journal/{docID}")

  .onCreate(async (snapshot, context) => {

    const data = snapshot.data();

    const userId = context.params.userId;

    const postId = context.params.postId;


    admin

      .firestore()

      .collection("users")

      .doc(userId)

      .collection("activities")

      .doc(postId)

      .set(data);

  });

或者我应该用 Firestore 模拟器调试它吗?


慕田峪4524236
浏览 129回答 1
1回答

肥皂起泡泡

错误信息:错误:参数“documentPath”的值不是有效的资源路径。路径必须是非空字符串。建议您将一个空字符串或其他一些无效值(例如未定义)传递给您对doc(). 我的猜测是第二个。您的通配符路径中包含“docID”,但您正尝试使用不同的名称“postId”访问它。您需要为两者使用相同的名称。也许您打算使用这样的通配符:exports.onCreateJournal = functions.firestore   .document("/users/{userId}/journal/{postId}")请注意,我将“docID”替换为“postId”以匹配您的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript