2016-07-18 43 views
1

我正在为我玩的在线浏览器游戏制作朋友列表扩展。每个用户都有一个朋友列表。我试图找出添加新朋友时更新此列表的最佳方法。现在,我将他们的朋友作为一个字符串,添加一个冒号,然后添加新的朋友名称,然后将新字符串设置为他们的朋友字符串。我觉得然而有一种更好的方式来做到这一点,因为这看起来不正确:"Friend0:Friend1:Friend2"firebase数据列表

我对这个过程的代码如下所示:

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

+0

阅读[存储列表数据的](https://firebase.google.com/docs/database/web/save-data#append_to_a_list_of_data)和[创建缩放数据](HTTPS的火力地堡文档://火力.google.com /文档/数据库/网络/结构数据#扇出)。 –

回答

3

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

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

我建议阅读this