Mic*_*mas 5 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)
}
)
Run Code Online (Sandbox Code Playgroud)
在文档中输入的每个字母都会调用此函数
限制/反跳 Firebase 云函数(database.onWrite)的最佳方法是什么,以便它不会在每次更改时触发?
您的函数将在您指定的路径上或下的每次更改时被调用。目前没有办法阻止这种情况。
不要将每个更改写入数据库,而是尝试在客户端上批量更改并批量写出它们,或者定期保存状态。
或者,给客户端一些其他方式来指示该函数是时候开始工作了,也许是文档中的某个字段,并仅侦听该字段的更改。这是一个仅在字段done
更改时触发的事件:
export writeTrigger = Functions
.database
.ref('/document/{documentId}/done')
.onWrite(...)
Run Code Online (Sandbox Code Playgroud)
只需确保取消设置该值,以便客户端可以指示应处理另一组更改。