[心得] Firebase 实作 聊天地图 - LiveMaps

楼主: Linux (Windows)   2016-10-17 10:12:16
Hi 各位大大们早安!
今天来分享一个使用 WebSocket 的应用作品,这主要是架构在 Firebase 的应用!
DEMO:https://livemaps.ioa.tw/
LiveMaps 是一个即时地图聊天室,让你在世界上任何位置都可以发出自己的感想动态
这也是一个纯前端技术的网站
仰赖 Firebase 的 Realtime 的特性,并且用于 Google Maps 上
让使用者的定位可以即时分享,同时间也可以发布动态!
现阶段只是初样的 Prototype
之后会加入 个人聊天室、上传照片、Mobile App 等功能!
GitHub:https://github.com/comdan66/livemaps/
基本的 Google Maps JavaScript API 的应用这边就不多介绍了,
这次的练习主要着重在 Firebase 的应用,借由 Hosting 来取得 Https 的协定
然后在建立起专案,并且利用 Realtime Database 来实作即时性的功能。
Firebase 的 Hosting 可以将自己的 Domain 用 CNAME、A 记录指向过来
使得专案拥有自己客制化的 Domain/Sub Domain 并且是 Https 的协定
而 Hosting 功能在 Firebase 的操作上并不会太困难
只要依照其所显示的步骤验证完网域所有权后即可完成。
Realtime Database 是项 Firebase 储存资料的服务,他是以 JSON 的方式
用 key-value 方式储存,用过 NoSQL 的朋友或许会比较适应这样的 Database
因为储存格式是 JSON 的关系
所以在一开始的设计就不能以关联式数据库的思维角度下去设计囉。
CRUD 的基本功能撰写这边也不做介绍,基本上官网都有范例以及说明囉
其中包含了 iOS、Android、JavaScript 的支援,所以更可以制作成 Mobile App
而下一阶段我也将考量使用 iOS 来实作一次 LiveMaps。
官方资源也不仅于 Sample,在官方 GitHub 也可以看到多样的 Library
其中常见的 firebaseui-web、GEO.. 等
服务都是由官方维护的,所以在家接功能上会更加方便。
以网页版来说,登入系统可以由 firebaseui-web 来串接
在地图上更可以用 geofire-js 来实作,geofire 就有丰富的经纬度范围运算
可以快速的捞出范围内的点,不过对于 Database 的 JSON 格式架构就要符合其规范
第一版的 LiveMaps 就是使用 geofire 实作,但是因为功能需求,所以暂时先舍弃
而 firebaseui 提供了各种不同的 OAuth 登入,
可以配合 Authentication 制作登入系统
不过在第二版制作时也暂时拿掉,主要是因为想加快登入时间问题
所以暂时只使用 Facebook 的 SDK 实作 OAuth 登入。
网页的定位方式,是采用 navigator.geolocation 的 watchPosition
取得使用者浏览器装置位置,因为 Firebase 提供了 Https 的服务
故在 Chrome 浏览器上就可以取得使用者位置
而且使用了 watchPosition 并且搭配使用 enableHighAccuracy
所以取的的位置会较为精准
但也可能会有误差值,故使用上可能会有使用者发生位置不正确的状况
待下一版本解决。
更多实作心得:https://livemaps.ioa.tw/about.html
更多作品:http://www.ioa.tw/
以上心得欢迎分享~~
作者: ckvir (ckvir)   2016-10-17 10:14:00
手机一直出现初始化不能用
作者: davy123498 (呜啦啦)   2016-10-17 10:21:00
有趣
作者: shinrenpan (iOS5)   2016-10-17 10:42:00
我记得当初不用 firebase 因为收费太贵了, google收购后不知道有没较便宜
作者: SmallDruid (小d)   2016-10-17 11:48:00
推一个
作者: qq1217 (...)   2016-10-17 12:19:00
作者: b12031106 (B先生)   2016-10-17 14:46:00
Firebase has reached its Peak Connections limit
作者: carbeso (←这念作卡比兽)   2016-10-17 16:02:00
好多人线上帮忙压测了 XD
作者: pooznn (我~~~是来被打脸滴!!!)   2016-10-17 16:16:00
免费的只有100个连线数 想靠这服务做APP赚钱的势必要付费
作者: shinrenpan (iOS5)   2016-10-17 17:13:00
用 Free MQTT server 就好
作者: kanx (joke 版 赞!!!!!!!!!!!!!)   2016-10-17 17:42:00
so cool.
作者: h5904098 (LBJ IS GOD)   2016-10-17 18:39:00
好有趣喔!
作者: sameil (charles)   2016-10-17 20:06:00
这id有点猛
作者: alog (A肉哥)   2016-10-17 20:29:00
Fire base 付费还好吧 东西如果上线了爆量 光scale跟调校、latency的成本跟时间 你有把握压的比他低吗
作者: yuanyu90221 (菜菜鸟)   2016-10-17 21:50:00
作者: rexhuang (BlueCancer)   2016-10-17 21:52:00
赞~~
作者: now99 (陈在天)   2016-10-17 21:54:00
可以在上面把妹了
作者: angusyu (〒△〒)   2016-10-17 22:21:00
征到要去当兵的老婆
作者: rollr (衛生紙的心情)   2016-10-17 23:45:00
这 ID !
作者: matthewka   2016-10-18 00:32:00
作者: penolove (丑兽的女朋友)   2016-10-18 01:22:00
推ID
作者: sunsamy   2016-10-18 01:40:00
这个idea很棒!
作者: ousapas (komica123)   2016-10-18 01:52:00
cool
作者: bakedgrass (蒙古烤小草)   2016-10-18 04:14:00
你现在有在工作吗?觉得你是前端的人才耶
作者: followmeyo (简简单单)   2016-10-18 07:49:00
这会红
作者: k7741118 (k7741118)   2016-10-18 08:18:00
Cool
作者: femlro (母猪教谋神异端审问官1.5)   2016-10-18 12:18:00
刚刚连线超过一分钟以上还没连上@@
作者: ken0110xx   2016-10-18 12:26:00
推XD
作者: chter ((分身别查了XD))   2016-10-18 15:34:00
帮测bug
作者: Jasonzheng (jason)   2016-10-18 16:12:00
作者: VisualStudio (2015)   2016-10-18 23:32:00
作者: zerofinal (人生~)   2016-10-19 11:00:00
作者: makemyday (make my day)   2016-10-19 20:34:00
推 感觉可以用在附近地区互相支援
作者: heuristics (阿弟牯)   2016-10-20 07:03:00
作者: sasoman (干 盗帐号勒)   2016-10-20 11:02:00
推 好有趣
作者: dali17dali17   2016-10-22 10:45:00
推ID推firebase
作者: ID3238 (默默)   2016-11-03 12:05:00

Links booklink

Contact Us: admin [ a t ] ucptt.com