Firebase数据库实例如何实时检索数据?

时间:2016-11-20 17:47:41

标签: android firebase firebase-realtime-database chat

我刚刚构建了我的第一个应用。它是我使用Firebase实时数据库的Group Messaging App。我按照this教程构建了我的应用程序。

聊天工作完美且实时,即对数据库的任何更改都会在我的应用上在几秒钟内被检索并反映出来。实际上,有点好奇,我并没有复制粘贴所有这些代码行,而是试图理解每个语句背后的含义。所以,我对我的一个疑惑感到困惑:

这是如何实时工作的(聊天会立即弹出)?我正在阅读Firebase数据库here,他们提到ValueEventListener用于实时更新应用数据,但这里使用了什么?

1 个答案:

答案 0 :(得分:3)

来自documentation

  

实时:Firebase实时数据库使用数据同步,而不是典型的HTTP请求,每次数据更改时,任何连接的设备都会在几毫秒内收到该更新。

网络方面,这是通过WebSockets实现的,REST API在服务器和客户端Firebase库中都使用。

此外,“实时数据库API旨在仅允许可以快速执行的操作”。

编辑:Firebase客户端库设置一个WebSocket与实时数据库进行通信,实时数据库用于与实时数据库的所有通信,包括读取/订阅和更新/推送(除非您使用the tutorial you did)。

编辑2:FirebaseListAdapter中,您使用了http://192.168.1.100:8080/icescrum来抽象数据同步的完成方式。它的第四个参数是对它将与之同步的实时Firebase数据库位置的引用(使用WebSocktes),并为您填充列表。它接收同步数据的每个条目,并将其放入您作为第二个参数提供的模型类的新Java对象,即ChatMessage.class。