【问题标题】:Timeout for firestore operationsFirestore 操作超时
【发布时间】:2018-06-20 11:46:10
【问题描述】:

如何为firestore 操作(如读、写和更新)设置超时?因为当连接不存在时.. 它不会触发OnCompleteListener

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    Firestore 读取和写入没有可配置的超时。 Firestore SDK 将自动重试数据库操作,并假设连接很快就会恢复。

    如果您想强制某些代码在经过一段时间后运行,您必须实现自己的计时器。

    如果您只想使用本地缓存的值而不需要与服务器进行往返,您也可以在查询中指定“缓存”的来源。例如,在 Android 中,使用 get(Source) 而不是普通的 get()。

    【讨论】:

    • server 源查询在超时并使用本地缓存之前等待多长时间?真的没有办法控制这个值吗?似乎这在某些 SDK 中是可能的,例如在 .NET 中:github.com/googleapis/google-cloud-dotnet/issues/2471
    • 大概是 500 毫秒。它无法通过任何记录在案的方式进行控制。这并不是真正的超时。服务器查询将在完成时增加原始缓存结果。
    • @DougStevenson 当应用程序下线时,缓存的写入在客户端有保质期吗?还是它们实际上“永远”持续到重新建立连接?
    【解决方案2】:

    Firestore Get 方法有一个参数来定义超时(float):

    .get(timeout=500000)
    

    Here is API documentation

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2016-11-08
      • 2013-07-14
      • 2015-05-26
      • 2014-02-05
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多