代码之家  ›  专栏  ›  技术社区  ›  Kortus

如何监控是否为特定用户创建了新文档

  •  0
  • Kortus  · 技术社区  · 1 年前

    假设我们在云函数Typescript代码中有以下代码:

    functions.firestore.document("collectionName/"+ID).onCreate(...
    

    当ID是当前用户ID或用户名时,我应该如何将ID传递给上面的云函数代码? 目前,身份验证是在应用程序中完成的,用户进入应用程序,但我不确定服务器上的云功能如何知道登录并与应用程序交互的用户是谁?

    我只需要监视相关用户的“onCreate”事件。

    0 回复  |  直到 1 年前
        1
  •  2
  •   Doug Stevenson    1 年前

    您不会将任何内容“传递”给Firestore onCreate触发器。它只是在运行 任何时候 则创建匹配的文档。您必须指定要匹配的文档的模式。创建匹配的文档后,该函数将运行,您可以使用提供的 context 以了解创建的文档的ID。

    我建议查看 documentation 例如onCreate触发器:

    exports.createUser = functions.firestore
        .document('users/{userId}')
        .onCreate((snap, context) => { ... }
    

    在上面提供的示例中,触发器匹配用户集合中的所有文档。这个 userId 通配符包含匹配的ID。您可以使用它来了解创建的文档的ID。使用 documentation for wildcards 您可以从传递给函数的上下文参数中获取ID。

    以下是文档中使用onWrite触发器的示例:

    exports.useWildcard = functions.firestore
        .document('users/{userId}')
        .onWrite((change, context) => {
          // If we set `/users/marie` to {name: "Marie"} then
          // context.params.userId == "marie"
          // ... and ...
          // change.after.data() == {name: "Marie"}
        });