Firebase 是否有写入操作的超时策略?
Does Firebase have a timeout policy for write operations?
有 setValue( )
将数据保存到 Firebase。如果连接非常非常慢会发生什么。保存数据有超时限制吗?如果它确实超时,它会重试吗?如果重试,重试多少次?
另外,读取方法onDataChange(DataSnapshot snapshot)
和更新方法是否超时?
有没有办法设置您自己的超时限制?
当客户端第一次连接到 Firebase 时(因此当它执行第一个 new Firebase(...)
时,它会建立一个到服务器的 WebSocket 连接。之后所有数据都通过该 pre-established 连接传输。
当您调用 setValue()
或其他写入操作时,命令将通过打开的套接字发送到服务器。当客户端添加监听器(使用 addValueEventListener()
或类似的)时,服务器将通过打开的套接字向您的客户端发送更新。由于没有建立连接,time-outs 在这里没有真正发挥作用。
当客户端和服务器之间的连接因某种原因丢失时,客户端将尝试re-establish 连接。它在这里使用指数 back-off,因此最初它经常尝试重新连接并逐渐减少频率。
虽然没有与服务器的连接,但客户端将继续提供已从其内存(或 on-disk 如果启用了磁盘持久性)缓存中接收到的所有数据。来自客户端的任何写操作都将排队等待发送到服务器。本地事件(触发例如您的 onDataChange()
方法)将立即触发,即使客户端未连接到服务器。
这涵盖了很多方面。如果您想了解更多有关其工作原理的信息,最好的办法是启用调试日志记录(Android 客户端中的 Firebase.getDefaultConfig().setLogLevel(Level.DEBUG)
)并检查当您断开网络连接时日志记录输出中显示的内容。它很有教育意义,会比我在这里回答更多的问题。
有 setValue( )
将数据保存到 Firebase。如果连接非常非常慢会发生什么。保存数据有超时限制吗?如果它确实超时,它会重试吗?如果重试,重试多少次?
另外,读取方法onDataChange(DataSnapshot snapshot)
和更新方法是否超时?
有没有办法设置您自己的超时限制?
当客户端第一次连接到 Firebase 时(因此当它执行第一个 new Firebase(...)
时,它会建立一个到服务器的 WebSocket 连接。之后所有数据都通过该 pre-established 连接传输。
当您调用 setValue()
或其他写入操作时,命令将通过打开的套接字发送到服务器。当客户端添加监听器(使用 addValueEventListener()
或类似的)时,服务器将通过打开的套接字向您的客户端发送更新。由于没有建立连接,time-outs 在这里没有真正发挥作用。
当客户端和服务器之间的连接因某种原因丢失时,客户端将尝试re-establish 连接。它在这里使用指数 back-off,因此最初它经常尝试重新连接并逐渐减少频率。
虽然没有与服务器的连接,但客户端将继续提供已从其内存(或 on-disk 如果启用了磁盘持久性)缓存中接收到的所有数据。来自客户端的任何写操作都将排队等待发送到服务器。本地事件(触发例如您的 onDataChange()
方法)将立即触发,即使客户端未连接到服务器。
这涵盖了很多方面。如果您想了解更多有关其工作原理的信息,最好的办法是启用调试日志记录(Android 客户端中的 Firebase.getDefaultConfig().setLogLevel(Level.DEBUG)
)并检查当您断开网络连接时日志记录输出中显示的内容。它很有教育意义,会比我在这里回答更多的问题。