如何从云功能中止创建到 firebase 实时数据库?

How to abort creation into firebase realtime database from a cloud function?

我正在创建一个使用两步对象创建到 firebase 实时数据库中的应用程序。

我想要的是在捕获onCreate事件的云函数上,如果某些规则不完整,则停止创建操作。

有办法吗?或者我需要删除节点而不是拒绝创建?

谢谢!

目前无法重新安排触发器。所以实际上,您要么必须创建一个新节点,要么以其他方式触发重新检查,例如一个常规的 cron 触发器,用于清理以前未处理的节点 (blog, video)。

您可能需要考虑数据库写入的命令响应模型。与其直接写入数据库并期望函数取消写入,不如将一个 "command" 对象推入描述您想要执行的操作的数据库中,在不同的位置,并让函数响应该命令以确定实际上应该做什么。然后,您的函数可以确定是否在条件合适的情况下提交最终写入。

我在 Google I/O 2017 年的一次演讲中概述了这种策略,该策略是针对多人回合制游戏的,该游戏会拦截所有移动请求,以确定它们是否有效,然后再提交到游戏。 The part about command-response starts here.