我正在为我玩的在线浏览器游戏做一个好友列表扩展。每个用户都有一个朋友列表。我正在尝试找出添加新朋友时更新此列表的最佳方法。现在,我以字符串形式获取他们的朋友,添加冒号和新的朋友名称,然后将新的字符串重新设置为他们的朋友字符串。但是我觉得有更好的方法可以这样做,因为这看起来不正确:"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');
   });
});


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

javascript - firebase数据列表-LMLPHP

最佳答案

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

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


我建议阅读this

10-07 19:46
查看更多