Firebase(谷歌)云功能 - 去抖/节流数据库.onWrite()#AskFirebase

时间:2017-07-10 00:53:29

标签: javascript firebase firebase-realtime-database google-cloud-functions

方案

我在路径documents/${documentId}

为每个用户存储了文档

目标

我想解析它们并在更改时更新该文档的索引

代码

import Functions from 'firebase-functions'

export writeTrigger = Functions
  .database
  .ref('/document/{documentId}')
  .onWrite(
    async event => {
      const data = event.data.val()
      const { documentId } = event.params
      // assume that updateIndex function exists
      updateIndex(documentId, data)
    }
  )

问题

为每个输入文档的单个字母调用此函数

TLDR

对firebase云功能(database.onWrite)进行限制/去抖动的最佳方法是什么,以便它不会在每次更改时触发?

1 个答案:

答案 0 :(得分:2)

您的函数将被调用,用于指定路径<或em>下的每个更改。目前无法阻止这种情况。

而不是将每个更改写入数据库,而是尝试在客户端上批量更改并批量写出或定期保存状态。

或者,给客户端一些其他方式来表明该功能的工作时间,也许是文档中的某个字段,并且只听取该字段的更改。这是一个只在字段done发生变化时触发的字符:

export writeTrigger = Functions
  .database
  .ref('/document/{documentId}/done')
  .onWrite(...)

请务必取消设置该值,以便客户端可以指示应处理另一组更改。