【问题标题】:Watch a collectionGroup with Firestore using Cloud Functions使用 Cloud Functions 观看带有 Firestore 的 collectionGroup
【发布时间】:2019-10-01 14:15:24
【问题描述】:

我正在开发一个使用 collectionGroups 的 Firestore 数据库。

有问题的 collectionGroup 是“Fights”的集合。

创建新战斗时,我想使用云函数中的 onCreate 方法来监视新的“战斗”条目,然后向它们添加一些元数据。理想情况下,它看起来像下面的伪代码

export const placeFightersInEvent = functions.firestore
  .collectionGroup('fights/{fightId}')
  .onCreate(async (fightSnapshot, context) => {
    // get metadata and add to the newly created 'fight'
  });

我正在使用最新版本的 firebase 函数和 admin sdk,但我似乎找不到可用的函数来执行此操作。这种方式可以看收藏组吗?

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    目前这对于任何深度的战斗子集合都是不可能的。如果您需要这样做,请file a feature request with Firebase support

    但是,如果您只在已知深度使用打架子集合,那么这可能也同样有效:

    export const placeFightersInEvent = functions.firestore
      .document('{coll}/{doc1}/fights/{doc2}')
      .onCreate(async (fightSnapshot, context) => {
        // get metadata and add to the newly created 'fight'
      });
    

    它应该只触发嵌套在任何顶级集合中文档下方的新战斗,因此它不是真正的集合组事件处理程序。但是您可以为所需的每个深度创建新函数。

    【讨论】:

    • 谢谢道格,我认为这对我来说很好用。所以.document('events/{eventID}/fights/{fightId}') 会观看在事件中创建的所有战斗子集合,并在创建正确时将 eventId 和 FightId 都传递给我?
    • 这就是我所期望的,是的。
    • 只是为了将来向任何人澄清,使用 context.params.eventID 访问 eventID,使用 context.params.fightId 访问fightId。这很完美。再次感谢。
    猜你喜欢
    • 2018-03-23
    • 2021-03-29
    • 1970-01-01
    • 2018-04-24
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多