新的firebase并试图了解事情是如何运作的。我有一个Android应用程序,并计划使用离线支持,我试图弄清楚我是否需要使用回调。当我打电话时:
productNode.child("price").setValue(product.price)
对setValue的调用是否在主线程上同步发生,同步到云是异步发生的?或者两者都在后台线程上异步执行?
答案 0 :(得分:2)
Firebase客户端会立即使用新值更新其本地数据副本。作为其中的一部分,它会触发所需的任何本地(value
,child_*
)事件。
将数据发送到数据库发生在一个单独的线程上。如果您想知道何时完成,可以注册CompletionListener
。
如果服务器以某种方式无法完成写入操作(通常是因为写入违反了安全规则),客户端将触发使应用程序恢复到正确状态所需的任何其他事件。因此,对于值侦听器,它将使用之前的值触发第二个value
事件。