Guy*_*Guy 3 firebase google-cloud-functions
在Firebase文档中,他们提到了4种类型的触发器:
有没有办法在触发"child_added"侦听器之前侦听云函数中添加的行并修改添加行的字段?有没有办法实现BeforeCreate?
期望的BeforeCreate循环(在云函数中):
在提交写入后,云功能中的实时数据库的所有事件都会异步触发.因此,在您的功能可以更改之前,其他用户可能已经看过数据.
要解决此问题,您需要确保仅在数据经过验证/修改后才能将数据写入每个人看到的位置.
要在侦听该数据之前验证/修改新数据,您有两种选择:
使用HTTP触发的函数来写入数据.应用程序代码调用HTTP函数,该函数执行所需的数据操作,然后将结果写入数据库.
让应用程序写入"审核队列",它只是数据库中的一个单独位置.Cloud Function触发此队列,验证/修改数据,将其写入实际位置,然后将其从队列中删除.
使用这两种方法时,您会丢失部分Firebase实时数据库的透明脱机行为,因此您必须选择.
您需要使用onWrite它才能工作,因为当您使用 时,您会多次保存到数据库child_added。
onWrite(handler) 返回包含非空函数的functions.CloudFunction.database.DeltaSnapshot
每次发生任何类型的 Firebase 实时数据库写入(创建、更新或删除)时都会触发的事件处理程序。
更多信息在这里:https ://firebase.google.com/docs/reference/functions/functions.database.RefBuilder#onWrite
Op 想要执行以下操作:
请求添加新消息
如果他想向最终用户请求新消息,那么最好在客户端完成。
更改消息字段
在这里,他想要更改字段内编写的内容,这通常也是在客户端而不是在云函数中完成的。
添加包含修改字段的新消息
这里他想将新消息添加到数据库中(根据我的分析)。然后可以在云功能中完成此操作,并且可以使用以下命令添加消息set()
客户端收到“child_added”事件
然后在将新消息添加到数据库后,他希望客户端接收数据库触发器,该触发器将被新消息触发。在这里他可以使用云函数,例如onWrite()或onCreate()
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |