如何使用react和firebase向所有用户显示实时数据?

时间:2017-03-27 07:11:12

标签: javascript reactjs firebase real-time

我正在构建一个实时更新的消息传递应用程序。到目前为止,我可以使用谷歌登录并发布消息,然后该消息显示在屏幕上。但是,如果我通过另一个谷歌帐户登录(该应用程序托管在heroku上)并以用户B的身份发布消息,则用户A不会在其屏幕上看到此消息,直到他们刷新页面为止。什么是实时更新所有屏幕的最佳方式,以便人们可以实时进行对话。

每条消息都会发布并存储在firebase中。到目前为止,我唯一的解决方案是使用javascript setInterval方法并每隔3-5秒从数据库中提取一次。这有效但它导致应用程序变得非常缓慢和滞后,并且经验不佳。欢迎提出任何指示/提示

2 个答案:

答案 0 :(得分:1)

您正在使用Firebase,其主要功能之一是实时数据库。如果您的JSON数据库中有任何更改,Firebase会自动通知您。您无需以间隔基本发送请求。

您可以参考Zero to App: Develop with Firebase - Google I/O 2016这也是Google Guys的消息应用演示。

您可以在Github中找到sample source code来实时发送和接收消息。

答案 1 :(得分:0)

有很多方法可以做到这一点。通常,一旦有新消息进入,您就会希望服务器收到通知,而不必每隔X秒ping一次服务器。

你可以看看这些:

  1. socket.io并了解websockets一般
  2. 利用反应的好list of existing chat apps
  3. Google's cloud messaging,因为你已经使用了firebase,这可能是你在这里的方式。
  4. 这应该引导你朝着正确的方向前进。