我正在为我玩的在线浏览器游戏做一个好友列表扩展。每个用户都有一个朋友列表。我正在尝试找出添加新朋友时更新此列表的最佳方法。现在,我以字符串形式获取他们的朋友,添加冒号和新的朋友名称,然后将新的字符串重新设置为他们的朋友字符串。但是我觉得有更好的方法可以这样做,因为这看起来不正确:"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');
});
});
有没有一种更清洁的方式来做我想做的事?我听说数组不是最佳的,但是我需要某种列表结构。作为参考,数据结构在我的控制台中如下所示:
最佳答案
这取决于您要如何检索它们,更好的方法是:
"users": {
"Cap": {
"friends": {
"user1": true,
"user2": true
}
}
}
我建议阅读this