野狗云简单应用之乱入

2016-07-23 12:06:00
hainuo
原创 1160
摘要:野狗云规则表达式的写法,读写数据
##0x00 规则表达式```{ "rules": { ".write":true, "users":{ "$user_id":{ ".write":true, ".read":"$user_id== auth.uid" } } }}```也就是读写权限通过rules节点下的`.write` 来控制 很简单 允许读就是 true,不允许读就是false 这个允许的对象是所有人 也就是everyone```var ref = new Wilddog("https://hainuo.wilddogio.com/");ref.key() //out put nullref.child('users').key() //output users //注意 这里的users并不一定是在服务端数据库中真正存在的,只是根据你的命令来解析的,所以不要被欺骗了ref.val() //会报错Uncaught TypeError: ref.val is not a function(…) 因为只有snapshot才有这个属性```下面我们先不管这个`ref.val()`,我们来看如何写入,因为数据要写入后,才能读取。##0x01 如何写入数据```ref.set(data); //data 是json对象ref.child('user').set(data) //如果存在user节点则直接替换user节点下的内容,如果不存在直接创建user节点,并将内容写入到user节点下面ref.push(data) //在当前节点中,插入一条数据,但是key是自动生成的没法控制,(生成的key类似"-KNUbvYd37x-jEUFPd8O")所以如果想要搞定key 只能用set方法,比如这样 data={"phone":"123456789","password":"123456"} 你想将数据插入到user节点下将key设置为123456789 那么要这样写 ref.child('users/123456789').set(data)```##0x002 数据读取```ef.once('value',function(snapshot){console.log(snapshot);if(snapshot.child(phone+'/password').exists()){phoneChild=snapshot.child(phone+'password');console.log(phoneChild.val());}else{alert('我想里面添加数据了');console.log(snapshot.child(phone+'/password').key());ref.child(phone+'/password').set(data);//通过这句我们可以爽快的建立数据啊}});```#0x03 开始创建用户数据``` ref.createUser({email:phone+"@xxx.com",password:password},function(err,data){ if(err!=null){ alert('创建失败!'); }else{ console.log('创建成功',data);//output 创建成功 Object {uid: "simplelogin:1469410287985886"} 返回的是uid信息 } })```#0x04 登陆认证```ref.authWithPassword({email:phone+'@xxx.com',password:password},function(err,data){ if(err){ console.log("Login Failed!", error); }else{ console.log("Authenticated successfully with payload:", data);//output Object {provider: "password", uid: "simplelogin:1469410287985886", token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2IjowLCJpY…jB9fQ.SyYAe79uV-7TQZsIoZTHzX-1pCQSuBdfwIkLi2xMWTE", password: Object, expires: 1469412684…} }});```
发表评论
贰 减 壹 =
评论通过审核后显示。