本地数据库写入是同步还是异步发生的?

时间:2015-12-02 22:50:09

标签: firebase

新的firebase并试图了解事情是如何运作的。我有一个Android应用程序,并计划使用离线支持,我试图弄清楚我是否需​​要使用回调。当我打电话时:

productNode.child("price").setValue(product.price)

对setValue的调用是否在主线程上同步发生,同步到云是异步发生的?或者两者都在后台线程上异步执行?

1 个答案:

答案 0 :(得分:2)

Firebase客户端会立即使用新值更新其本地数据副本。作为其中的一部分,它会触发所需的任何本地(valuechild_*)事件。

将数据发送到数据库发生在一个单独的线程上。如果您想知道何时完成,可以注册CompletionListener

如果服务器以某种方式无法完成写入操作(通常是因为写入违反了安全规则),客户端将触发使应用程序恢复到正确状态所需的任何其他事件。因此,对于值侦听器,它将使用之前的值触发第二个value事件。