Firebase:如果写入权限被拒绝,则阻止客户端执行回调



所以我设置了一些验证规则,例如不允许聊天中超过 300 个字符的消息。

该规则运行良好,但 (AFAIK( Firebase 喜欢优化体验,这导致他们在服务器告诉我们没问题之前执行"child_added"之类的回调。

这使消息出现在聊天中,但不会到达服务器,使我们处于未同步状态。

有没有办法防止回调被触发,直到服务器说没问题?

我现在看到的唯一解决方法是捕获权限被拒绝事件并再次删除该消息。然而,这不会带来尽可能干净的体验(与让它出现然后在消失后不久相比,根本不会在聊天中添加消息(

如果服务器端安全规则拒绝您的写入操作,Firebase 客户端会触发事件来协调本地应用。例如:如果您添加了一个新的子项 (child_added(,客户端将在知道服务器拒绝操作后触发child_removed

只要你的应用正确处理所有child_*事件,UI 就可以正确保持最新状态。

最新更新