创建一个野狗应用,填写应用名称和应用ID即可创建。应用ID需要全网唯一。应用创建成功后,可以在控制面板上看到应用。1.导入SDK2.创建引用ref=Wilddog("https://.wilddogio.com/")//将替换为应用IDref=Wilddog("https://fullstack-top-demo.wilddogio.com/")因为wilddog是以key-value的形式存储数据,所以创建引用会定位到根节点。要定位子节点,只需将路径附加到url,例如:user_ref=Wilddong('https://fullstack-top-demo.wilddogio.com/user/')Wilddog还提供了child()方法来获取对子节点的引用。ref=Wilddog("https://fullstack-top-demo.wilddogio.com/")user_ref=ref.child('user')这两个方法效果一样1.写入数据。创建Wilddog引用后,可以通过set()user_ref.set({name:'lixiaohao',age:,blogurl:'ghost.fullstack.top'})向节点写入任何合法的JSON数据2.Read数据读取数据通过绑定回调函数实现。假设我们已经按照上面的代码写入了数据,那么我们就可以使用on()函数来读取用户对象的值了。user_ref.on('value',function(datasnapshot){console.dir(datasnapshot.val());//结果会在控制台打印出刚才设置的对象})回调函数的参数是一个DataSnapshot对象类型,调用其val()函数获取数据对象。在上面的例子中,value事件会在第一次读取数据时触发一次,之后每当数据发生变化时都会触发。如果只想读取一次,不想每次数据变化时都触发回调函数,可以使用once()函数代替on()函数。3.用户认证**大多数应用程序都需要一套最终用户帐户系统。只有最终用户被唯一标识后,才能个性化用户体验,控制用户对数据的访问。为最终用户提供唯一标识的过程称为最终用户身份验证。WildDog为开发者提供了多种用户认证方式。野狗提供了多种用户登录方式,具体请参考官方文档**这里需要注意的是,第三方登录必须设置OAuth跳转域名白名单。但是在本地环境下使用localhost或者127.0.0.1访问不受影响。好了,了解了这3点,就可以开始制作排行榜了。游戏排行榜,我们可以在网上找一个html5的小游戏,稍微研究一下代码,应该可以找到游戏分数的结算方式,给我们的refset()赋值就可以了游戏结束。这里以我写的demo为例//创建对根节点的引用wilddog=Wilddog(https://.wilddogio.com/");varwilddogAuthData;//Wilddog用户登录信息//监控登录statechangewilddog.onAuth(function(){//如果登录,将用户数据存储在全局变量中,方便调用wilddogAuthData=data;(wilddogAuthData){console.log(wilddogAuthData);}{//如果没有登录,调用wilddog登录方式,这里只是简单的使用微博授权登录,其他登录方式请参考官方文档。//弹出新浪微博OAuth认证wilddog.authWithOAuthRedirect("weibo",authHandler);}});//创建一个回调处理最终用户认证的结果,微博登录成功后的回调方法函数authHandler(error,data)){(error){console.log("登录失败!",error);}{console.log("有效负载认证成功:",data);}}登录成功后,可以在游戏结束方法中获取用户信息和游戏结果,在上传前添加//打破自己的记录。一般html5游戏都会把最好成绩保存在localstorage中,根据实际情况修改。(score>bestScore){(!wilddogAuthData){alert('您未使用微博账号登录,不能计入评分!');returnfalse;}ts=Date().getTime();wilddogRef.child('rank').child(wilddogAuthData.auth.uid).({//这里的字段根据自己的需要定义uid:wilddogAuthData.auth.uid//为了尽量避免伪造数据,分数被加密后放在伪造的token字段中迷惑观众,取出分数时,解密对比token和score字段,不能从根本上防止作弊。token:sjcl.encrypt(ts+,score+),score:score,ts:ts,rank:t++(3000000000000-ts),UA:navigator.userAgent});}rank字段用于orderByChild()方法,按字典序对字符串进行排序。这里的t是在分数前加0到6位,方便排序。如果分数=100,则t=000100。这样组合后,可以先确定高分。如果分数相同,则先达到分数的用户获得排行榜//获取数据并返回最后10个wilddogRef.child(k').orderByChild(k').limitToLast().on("value",function(users){html=[];users.forEach(function(user){item=user.();//将score与加密的'score'进行比较,不匹配则忽略(sjcl.decrypt(item.ts+,item.token)==item.score){//.orderByChild()方法是升序排列的,所以这里使用了'unshift'方法html.unshift('[外图上传中...()]'+item.name+'