使用Firebase进行实时受众调查

实时数据库提供了一个非常不错的平台,供您进行实验并充分发挥您的创造力。 随着获取/获取信息的必要速度的增加以及数据不断变化的额外约束,实时数据库已被证明非常有用。

现在,在一个庞大的实时数据库中,如果您了解到数据中某些特定部分发生的更改,并且随着更改的发生而实时对其感兴趣,那就太好了。 在设计模式中,此模型将称为发布者-订阅者模型。

有一些第三方云服务提供商可以帮助您实现发布-订阅模式,但是让我们在本文中重点介绍Firebase,因为它具有出色的实时数据库服务以及通知,文件存储,分析等其他基本服务等等。让我们用Firebase构建一个令人兴奋的实时受众调查应用程序,在该应用程序中,将向受众询问问题,并在几秒钟内回答,管理员可以实时查看结果。 看一下这个视频。

如您所见,Firebase承担了分别跟踪每个频道的订户的繁重工作,一旦管理员发布问题,Firebase便完成了将问题发送给该频道的所有订户的繁重工作! 请注意,我们不涉及推送通知来发送问题。 秘密在于,只要在节点(或上图中的通道)内进行任何更改,Firebase就会将相应的更改发送到该节点的所有侦听器(订阅者)。

在Firebase内部,数据存储在一系列字典中。 可以轻松缩放数据,并在添加通道,问题或答案时创建更多子节点。 此图显示了Firebase数据库的快照。

接下来,让我们研究一下如何将数据存储在Firebase中的简单代码。

在Firebase中存储数据

在订户应用程序中,我们将必须通过以下代码表达对侦听Firebase通道节点中的更改的兴趣。

在Firebase中监听节点

由于您已经开始了解直觉,因此在发布者应用程序中使用了与订阅者应用程序监听问题节点的相同过程来监听答案节点。 订阅者应用会将答案上传到Firebase。

如您所见,Firebase提供了一个非常好的实时数据库,并且只需很少的代码,我们就创建了一个实时的受众调查应用程序。 但是,我想在另一篇文章中重点介绍Firebase的某些缺点和局限性。

阅读本文,如果您对Firebase入门感兴趣,则可以阅读此设置Firebase教程。 您可以在Github存储库中查看此项目中使用的完整代码。

由Y Labs创新实验室开发