【问题标题】:Firestore client listeners messaging guarantees?Firestore 客户端侦听器消息传递保证?
【发布时间】:2021-02-11 22:52:55
【问题描述】:

我看到Cloud Firestore Triggers 提供了至少一次消息传递保证,但是内置在 Firestore 客户端库(特别是 Java 库)中的 snapshot listeners 呢?它们是否提供相同的消息传递保证,还是更弱?我正在努力寻找这方面的确切信息。

我的目标是让后端服务监听 Firestore 集合。使用onShapshot 监听器似乎比连接一个云函数来触发发送到 PubSub 主题等更简单。

【问题讨论】:

  • 我也找不到任何关于保证的文档,但我相信您可以使用适当的 error handling 调整您的应用程序。
  • 请注意,监听器在失败后不会再收到任何事件,但您可以在错误处理逻辑中 detach 它,然后再次附加它。
  • 最后,我可以看到 onSnapshot 监听器正在监听一个集合,正如 here 所解释的那样,但请注意 Firestore 触发器本身不能指向特定集合,而是使用通配符指向所有 @ 987654326@.

标签: firebase google-cloud-firestore messaging firebase-admin


【解决方案1】:

快照侦听器仅在文档更新后才读取文档,因此预期功能是每次更改读取一次。但是,快照侦听器可能会在following situation 中多次读取:

此外,如果监听器断开连接超过 30 分钟(对于 例如,如果用户离线),您将被收取阅读费用 如果您发出了全新的查询。

【讨论】:

  • 我的问题更多地与消息传递保证有关。例如,如果我要部署一个触发文档更新的 Firebase 云函数,我可以保证我的函数至少会在所有文档更新上触发一次。使用来自客户端 API 的快照侦听器时是否存在相同的保证?
  • 我试图找到任何信息,即 snapshop 侦听器提供任何保证,这似乎只是 Cloud Firestore 触发器的关键功能。
猜你喜欢
  • 1970-01-01
  • 2013-02-21
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 2018-05-03
  • 2012-04-02
相关资源
最近更新 更多