Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase(谷歌)云函数-去盎司/节流数据库.onWrite()#AskFirebase 脚本_Javascript_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Javascript Firebase(谷歌)云函数-去盎司/节流数据库.onWrite()#AskFirebase 脚本

Javascript Firebase(谷歌)云函数-去盎司/节流数据库.onWrite()#AskFirebase 脚本,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我在路径documents/${documentId} 目标 我想解析它们,并在文档发生更改时更新该文档的索引 代码 问题 对于文档中键入的每个字母,都会调用此函数 太长,读不下去了 什么是限制/解除firebase云函数(database.onWrite)的最佳方式,以便它不会在每次更改时触发?您的函数将在指定的路径或路径下为每次更改调用。目前没有办法阻止这种情况 与其将每个更改都写入数据库,不如尝试在客户机上批量更改并将其批量写入,或者定期保存状态 或者,为客户机提供一些其他方式,以表明该函

我在路径
documents/${documentId}

目标 我想解析它们,并在文档发生更改时更新该文档的索引

代码 问题 对于文档中键入的每个字母,都会调用此函数

太长,读不下去了
什么是限制/解除firebase云函数(database.onWrite)的最佳方式,以便它不会在每次更改时触发?

您的函数将在指定的路径或路径下为每次更改调用。目前没有办法阻止这种情况

与其将每个更改都写入数据库,不如尝试在客户机上批量更改并将其批量写入,或者定期保存状态

或者,为客户机提供一些其他方式,以表明该函数开始工作了,可能是文档中的某个字段,并只听取该字段的更改。这里有一个字段
done
更改时会触发:

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

只需确保取消设置该值,以便客户端可以指示应处理另一组更改。

Hmm,有趣的一点。我想我将添加一个新路径,该路径从客户端写入,并被云函数删除。i、 这样就不会有任何冲突。(尽管我仍然觉得云函数应该有某种内置的去Bouncer)这很简单,添加了
/document\u index/{documentId}
作为写触发器。去盎司发生在客户机上。如果对@doug stevenson有帮助,我可以用代码编辑你的答案
export writeTrigger = Functions
  .database
  .ref('/document/{documentId}/done')
  .onWrite(...)