当前位置:首页 » 数据仓库 » firebase实时数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

firebase实时数据库

发布时间: 2023-08-28 08:43:57

A. 如何开发一个像WhatsApp的即时消息APP

如果你像其他97%的人口一样,那么至少有一次在你的生活中,你使用手机发送文本或聊天消息。普通用户在一天内发送至少14条短信,可以通过即时消息APP或SMS发送。这实际上意味着消息传递可能位于智能手机高度使用功能列表的顶部。尽管如此,语音/视频通话仍然紧随其后。

1.1。什么是即时消息?

即时消息或即时消息是一种在线聊天,通过互联网提供实时文本传输。一些IMAPP还使用Push技术来提供实时文本,这些文本可以在字符构成时逐字传输文本。具有高级功能的即时通讯APP甚至可以帮助用户发送文件,可点击的超链接,VoIP,视频聊天,流媒体和更多类似的服务。

那么让我们来谈谈如何开发WhatsApp之类的APP。消息市场在WhatsApp领导游戏行业(每日活跃用户数为8亿)方面占据主导地位,其次是Facebook Messenger(每日活跃用户数为7亿)和微信(每日活跃用户数量为5.49亿人),但这并不意味着没有更多的空间和范围,一些更有创意的解决方案,金和盛在这里提供帮助!

2. WhatsApp的Tech Stack

如果你打算制作一个聊天APP,为什么不建模一个似乎已经正确的人。让我们开始了解什么样的技术堆栈与金和盛一起开发类似WhatsApp的即时消息APP?

2.1。Erlang

这是用于开发WhatsApp的首席编程语言。由于其卓越的性能,速度和可扩展性,这种语言获得了最多的认可和赞赏 - 这种组合最适合实时聊天应用!

2.2。Ejabberd

Ejabberd XMPP(可扩展消息和存在协议)服务器是独一无二的,它具有处理成千上万条消息的能力,并且速度快,无延迟,因此非常适合您。此外,它还可以很好地与Erlang编程语言结合使用,使它成为一个神话般的二重奏,并为整个APP提供动力!该服务器使用特定的可插拔模块进行开发,该模块允许广泛的功能范围,如:

  • 一对一聊天

  • 联系实际和在线列表

  • 存储和转发(离线消息)

  • PEP(个人事件协议)和消息键入规范

  • 多用户聊天(MUC) - 群聊

  • 隐私设置和帐户欺骗

  • 消息归档管理

  • 2.3。YAWS

    另一个Web服务器或YAWS是为多媒体文件存储而开发的,完全由Erlang编写。这是一款高性能的Web服务器,专为具有动态内容的高负载应用而开发。YAWS在处理并行流程的能力方面独树一帜,并且具有高性能标准。

    2.4。FreeBSD的

    这是WhatsApp正在使用的操作系统,并帮助它在其平台上每天发送数十亿条消息。FreeBSD操作系统具有精巧的网络堆栈和广泛的可靠性。这是一个功能强大,稳定,开放源码的Unix系统,实时聊天APP开发人员拥有丰富的使用经验。由于FreeBSD是一个单独的分销商,它在安装方面有一些明显的优势,并提供了二进制软件包的简单创建。

    2.5。Lighttpd的

    Lighttpd是一款开源Web服务器,针对更高的性能进行了优化。这个轻量级的Web服务器甚至可以在WhatsApp上部署,目的是添加安全,多功能,快速和兼容的功能。

    2.6。自定义XMPP(可扩展消息和存在协议)服务器

    最初这是WhatsApp用来传输所有用户信息的东西。这项技术具有很大的优势,因为它支持一对一和多用户聊天对话。但最终公司不得不切换到不同的互联网协议,以优化其服务器性能。

    2.7。Mnesia DB

    用Erlang编写的实时数据库管理功能非常适合存储任何实时聊天APP上运行的消息,文件,图像,视频,文档以及其他多媒体文件。对于WhatsApp,数据库通过Mnesia和MySQL数据库的组合启动。

    3.使WhatsApp真棒的功能

    从Techstacks开始,让我们深入了解更明显的视觉功能,这些功能可以帮助您制作一款酷酷的新型聊天APP。当您打算构建WhatsApp这样的APP时,在决定APP拥有哪些APP之前,研究APP的功能非常重要!

    3.1。注册和联系

    大多数实时聊天APP或即时消息APP需要用户使用电话号码登录,而有些可能会通过社交媒体登录进行登录。WhatsApp更进一步,拍摄了短信进行确认,为用户增加了一层安全性,这是通过使用第三方API(如Twilio或Nexmo等)完成的。

    然后,用户应该从地址簿中添加他们的联系人。聊天只能让你周围的所有朋友聊天才能开心!你甚至可以考虑整合其他选项,如gamil或Facebook(如果你有很多口袋的话)。现在,这一步需要非常快捷方便。

    在这个级别考虑Profile UX / UI可能是一个好主意。您可以考虑您可能提供的那种自定义选项,或者决定是否希望用户能够与其他社交配置文件连接,或者您是否会向用户提供任何自定义设计功能。我们提供的用户体验堪称典范,让您的用户享受注册过程。

    3.2。即时消息/实时聊天

    由于它是一个聊天APP,所以消息传递功能是给定的。然而,这不是一种肯定或否定的选择,如果你正在考虑构建一个聊天APP,那么需要解决一些小小的细节。让我们来看看金和盛的清单,以帮助您做出决定。

  • 用户以何种方式发起聊天?

  • 你只会提供一对一的聊天选项,还是会有群聊的功能?除了这两个选项,WhatsApp甚至允许“广播列表”功能,它允许用户将相同的消息发送到指定的人员列表。

  • 你会只提供私人聊天选项还是提供公共聊天室?

  • 你想添加超级秘密安全功能,消息在读取后会在指定的时间后自毁吗?

  • 你想提供一些装饰,如字体类型,字体选项,贴纸,静音功能,共享多媒体和文档等?尽管这些功能对于MVP来说可能不是一个好主意,但是请将它们包含在未来版本的APP中。

  • 你会提前提前安排消息的功能吗?

  • 今天的人们高度关注数据的隐私,研究表明,大约96%的人害怕在线黑客攻击,并将他们的私人数据置于危险之中。因此,当您着手开发私人Messenger软件时,务必注意用户的安全。以下是您的计划中应该注意的主要问题。

  • 你可以看看开发和实现一个额外的匿名自毁功能。

  • 您可能会考虑大量投资于高级加密技术,并保护所有消息免遭劫持。

  • 您可以看看ChatSecure和CryptoCat这两个伟大的开源加密聊天APP。他们的代码甚至可以在Github上供所有开发人员查看并理解他们的加密如何工作。金和盛开发的即时消息功能对APP用户的安全保持警惕。

    3.3。通知和推送消息

    这些可能看起来很小,但在保留用户和保持其在APP中的活跃性方面有很长的路要走。一个基本规则是让用户自定义他们想要接收的通知类型。Firebase云消息传递适用于Android和iOS平台。但本机Apple推送通知可能更适合iOS平台。但是,Firebase Cloud Messaging大大降低了开发成本和开发时间。金和盛的聊天室和MessengerAPP可让您发送相关的推送通知,并帮助您吸引和留住您的用户。

    3.4。多媒体文件传输

    当它超越文本和表情符号时,聊天确实更有趣。您的用户会寻找他们可以共享多媒体文件的功能和方式,例如图像,GIF,视频,贴纸等等!毕竟,一张图片可能胜过千言万语。不过,如果您拥有财力雄厚的产品,您甚至可以考虑与领先的云端服务提供同步选项,例如Google Drive,Evernote和Dropbox。金和盛制作的即时通讯APP可让您的用户完美无缺地传输多媒体文件。

    3.5。分享位置

    这是一个功能,当你的朋友在圈子里走动试图去你的房子时,它会派上用场!Apple MapKit和Google Location SDK提供了用于集成位置共享的本地工具包。如果您计划与当地企业合作以通过应用获利,您还可以在应用中考虑iBeacon和Eddystone传感器。这有助于用户在进入会场的地理围栏后收到相关消息。很像WhatsApp,金和盛制作的即时通讯APP可让用户与其他用户分享他们的位置。

    4.额外的实时聊天APP功能,您可能会考虑为您的APP

    虽然WhatsApp可能会引领整个潮流,但这并不意味着它们是完美无瑕的,并且可以装载各种各样的功能。您可以查看WhatsApp尚未提供的以下功能并做出明智的决定!

    4.1。VoIP(互联网协议语音)呼叫

    在实施方面,这是一个昂贵的方面,但在用户中是一个非常有价值的功能。通过Skype或Viber等实时聊天应用进行呼叫越来越受欢迎,并逐渐取代传统的手机通话。

    4.2。视频聊天

    距离已经增加,时间被证明是一种难以捉摸的商品。在这个时代和时代,视频聊天或视频通话已经超越了“酷”,并且变成了一种必需品,以便与那些居住在那里的人保持联系远。

    4.3。音频和视频流

    这是SnapChat的核心功能,并且已被其他领先渠道(包括Instagram和Facebook)效仿。这可能是一个值得投资的功能。

    4.4。活动计划和同步日历

    此功能非常适合提醒用户有关特别活动或庆祝活动的信息,以便您可以提前计划。当您试图吸引“商业”人群到您的APP时,此功能特别有利并且效果很好。

    4.5。应用内购买和订阅计划

    必须有一个收入模式,这是实时聊天应用货币化的最有效方式之一。

    4.6。多平台聊天

    当您提供跨平台使用APP的选项时,无论您的APP是连接到桌面还是始终处于运行状态,您都可以帮助用户保持与APP的联系!

    4.7。自毁信息

    这是一个很棒的功能,可以让你发送秘密聊天信息给你的朋友,然后在他们看到它的一段时间后自毁。

    4.8。云服务同步

    当您允许用户将您的应用与突出的云服务同步时,可以以更高效的方式监控,更新,存储和扩展托管环境。

    5.促成和影响成本的因素

    成本和预算因素对正在开发APP的人有很大的影响,当你跳跃时,它应该是一个计算出来的。虽然可能很难说出制作应用需要多少费用,但是可以列出对应用开发成本有重大影响的关键决策。

  • 你选择的平台将决定你将要咳嗽的钱的种类。明智地选择是否要为Android,iOS或两者构建!

  • 您决定继续使用的功能范围将决定您将要投入的时间和金钱类型。很自然地,你拥有的功能越多,成本就越高。虽然您必须优化您在MVP中提供的功能数量,但保留足够的功能以保持用户参与。

  • 制定预算是您在整个过程中必须做出的最重要的决定之一。正是这个决定会推动所有其他决策,重要的是要保持现实,不要太过分或太紧张。

  • 选择能够帮助您完成手头任务的代理商,同时满足您的时间表,提供优质的产品,并保持在预算范围内。

B. Firebase是怎样成为Google Cloud对标Amazon AWS竞争中的重要一环

Google I/O大会推出了全新的Firebase平台,开发者反响强烈。Google一年半前收购Firebase时后者团队仅26人,按照Google的作风,收购后的公司品牌就要关掉。至今收购而保留下来的品牌并不多,除非收购前品牌影响力很大,比如Nest、Android,都是特别大体量的产品。Firebase能够保留下品牌,足见这个产品的影响力。
那一家由26人组成的公司做出了怎样的产品?又怎样成为Google Cloud战略中重要的一环?因为野狗和Firebase的API完全兼容,所以由我来写这篇文章还是很有发言权。

Firebase究竟好在哪?
1、本地副本,弱中心化的架构
Firebase的实现原理可以理解为是一个客户端分布式实时数据库。在每个客户端上都有一个云端数据库的副本。当客户端被更改的时候,每个设备上的数据库副本都会相应的进行同步。
当实现本地副本、弱中心化以后,有很多好处。比如可以提供离线处理,在网络不好的情况下可以无需中断。只要网络一好,立刻进行同步。还有可以很简化开发模型,因为数据在每个客户端的SDK里都有缓存,执行速度非常的快。
PS:这样的特性对使用者特别友好,但是对系统开发来说特别考验架构和编程能力,因为要在每个端上要实现一个内存数据库。更别提还有事务处理等复杂功能。
2、前端化思维
Firebase的产品和Facebook的Parse不一样的地方是,Firebase对前端工程师特别友好。
Web工程师逐渐正在崛起,不再只是写个代码,做个页面这么简单。
有人说Firebase平均每月2万的净增是从Google导入的新用户,但实际情况是产品优秀。
Firebase是一个BaaS ( Backend as a Service ) 服务。Firebase的应用场景非常丰富,比如多人互动、游戏、物联网等。

传统云服务体验怎么样?
先说下传统云服务公司的定义:SaaS、PaaS、IaaS。越往下自由度越高,越往上使用起来越简单。
SaaS解决的是开箱即用的模郑问题,不用写代码,直接用。PaaS解决的是运维的问题,写完代码往云端一扔,搞定。而IaaS解决的是硬件资源弹性扩容的问题,像个水龙头,用多少拧多少。
目前PaaS代表的产品比如HeroKu,信码磨Google App Engine、国内SAE等,几乎全线已挂或半死不活。PaaS挂掉的原因是没有解决根本问题,半吊子。又不简单,又不自由。

广义BaaS是指用户需要通过远程API获得服务的云服务产品。比如类滑斗似统计服务MixPanel、友盟等。狭义的BaaS是指通过远程API提供计算和存储资源的产品,比如Parse、Firebase、Twilio、Pusher,Apple Cloud Kit这样的产品。
新版Firebase能为Google带来什么?
BaaS接近SaaS,但是提供更多的自由度。用户使用Firebase API可以很方便的开发出实时通信功能,而无需后端云服务。苹果、AWS、Paypal等很多公司都有自己的BaaS平台。不同于传统的PaaS服务还需要上传到容器,BaaS服务仅需要API接口就可以进行编程。
比如新版Firebase与分析服务实现了深度集成,它可以向Firebase反馈基础的用户信息,与Google Analytics一样,开发者也可以指定特定的细节,例如追踪按钮的按压或者购买的操作。
借助这些数据Firebase能够给出一个直观的分析报告,以便开发者深入了解用户的行为或者广告的投放效果。
本次更新后,Firebase可以远程变更应用配置,开发者可以借此进行某些A/B测试。同时Firebase开放了全新的通知系统,此功能基于Google Cloud Messaging。

除此之外,Google还将Firebase与Cloud Test Lab深度结合了起来,以便开发者在真实设备上测试移动应用,并重命名为Firebase Test Lab。
在美国的市场,IaaS亚马逊已经是绝对的老大,Google没有机会。Google希望通过Firebase这个产品能够连接它的底层Google Cloud和上层的SaaS业务:Nest、Google Works、Admob、分析等。甚至Nest的API也是使用的Firebase。
在这次Google推出的包括分析、Push、Storage等功能,看起来没有新意,但恰是透露了Google通过以Firebase为中心,以应用为切入口去和亚马逊AWS竞争的战略。