第一次看到Firebase就被它所吸引,此后尝试使用它开发了一个chrome聊天插件,开发过程中,Firebase极大的提高了开发效率。由于对Firebase的强烈兴趣,所以毕设选择做一个类似的东西,便是End.js
Firebase几个优点:
- 云服务,随时扩展,高性能,无需部署管理自己的服务器,数据库,大大减少工作量
- api简单,使用起来非常的方便,可大大减少代码量
- 可通过网页对数据进行管理,很方便
Firebase几个缺点
- 数据结构和数据库存储方式不一致(由于想支持REST方式读取数据)
- 不能部署自己的数据库(很多项目都需要自己维护数据库的)
- 目前数据操作能力教弱(有很多需求(稍微复杂点的查询)目前Firebase很难支持)
- 数据分析功能很弱,只能查看流量和当前在线人数(独立数据库的话,这部分很容易做的更强大)
- 不支持离线开发(废话。。)
总结一下就是Firebase弱化了数据库的存在,看起来很酷,但是现实情况下出于安全、数据分析等考虑,自己维护数据库才是更合适的。
为什么使用End
-
如果想部署一个自己的Firebase,可以考虑使用End
-
增强了数据库操作能力
-
尽量和Firebase api设计一致
-
很方便的和其他Node Package结合使用
客户端使用:
01 |
var chat = new End( 'chat' , 'http://localhost:8080' ), |
02 |
chatRoom = chat.child(window.location.search.split( '?' )[1]), |
03 |
chatMsgs = chatRoom.child( 'msgs' ); |
04 |
chatMsgs.on( 'child_added' , function (msg){ |
05 |
$( '.msgs' ).append( '<div class="msg">' +msg.value.name+ ' : ' +msg.value.text+ '</div>' ); |
07 |
$( '#btn_send' ).click( function (){ |
08 |
var name = $( '.txt_send_name' ).val(); |
09 |
var text = $( '.txt_send_text' ).val(); |
10 |
chatMsgs.push({name:name,text:text}); |