Firebase是否有写入操作的超时策略?

Shr*_*ain 5 firebase firebase-realtime-database

setValue( )将数据保存到火力地堡.如果连接非常慢,会发生什么.保存数据是否有超时限制?如果它超时,它会重试吗?如果它重试,多少次?

此外,读取方法onDataChange(DataSnapshot snapshot)和更新方法是否超时?

有没有办法设置自己的超时限制?

Fra*_*len 9

当客户端首次连接到Firebase时(因此当它执行第一个时new Firebase(...),它会建立与服务器的WebSocket连接.之后,所有数据都通过预先建立的连接传输.

当您调用setValue()或执行其他写操作时,该命令将通过打开的套接字发送到服务器.当客户端添加侦听器(具有addValueEventListener()或类似)时,服务器将通过打开的套接字将更新发送到您的客户端.由于没有建立连接,超时并没有真正发挥作用.

当客户端和服务器之间的连接以某种方式丢失时,客户端将尝试重新建立连接.它在这里使用指数退避,因此最初它经常尝试重新连接并逐渐减少频率.

虽然没有与服务器的连接,但客户端将继续提供已从内存(或磁盘,如果已启用磁盘持久性)缓存的所有数据.来自客户端的任何写入操作都将排队等待发送到服务器.onDataChange()即使客户端未连接到服务器,本地事件(触发例如您的方法)也会立即触发.

这涵盖了很多方面.如果您想了解有关其工作原理的更多信息,最好的办法是启用调试日志记录(Firebase.getDefaultConfig().setLogLevel(Level.DEBUG)在Android客户端中)并检查丢弃网络连接时日志记录输出中显示的内容.它具有很高的教育意义,并且会回答比以往更多的问题.