firebase数据列表

时间:2016-07-18 06:19:55

标签: javascript firebase firebase-realtime-database

我为我玩的在线浏览器游戏制作好友列表扩展程序。每个用户都有一个朋友列表。我想在添加新朋友时找出更新此列表的最佳方法。现在我把他们的朋友作为一个字符串,添加冒号后跟新朋友的名字,然后将新字符串设置为他们的朋友字符串。我觉得有更好的方法,因为这看起来并不正确:"Friend0:Friend1:Friend2"

此过程的代码如下所示:

var reqName = $('#addFriendText').val();  // Name to be added
var name = args['name'];                  // Current users name
firebase.database().ref('/users/' + name).once('value').then(function(snapshot) {
   var friends = snapshot.val()['friends'];  // Get friends string
   newFriends = friends + ':' + reqName;     // Make new friends string
   var dbRef = firebase.database().ref('users');
   var obj = {};
   obj[name] = {'friends':newFriends};       
   dbRef.update(obj).then(function(){        // Store new friends string
       console.log('db updated');
   });
});

有没有更清洁的方法来做我想做的事情?我听说数组并不是最优的,但我需要某种列表结构。作为参考,数据结构在我的控制台中如下所示:

data

1 个答案:

答案 0 :(得分:3)

这取决于你想要如何检索它们,更好的方法是:

"users": {
  "Cap": {
    "friends": {
      "user1": true,
      "user2": true
    }
  }
}

我建议阅读this