我正在尝试创建一个小组聊天应用程序。玩家可以加入多个组。我面临的问题是,我不知道如何在一个球员中添加多个组。如果玩家是在1组中加入的,我可以使用' group‘作为键,使用组名作为值,但是对于多个组,这是不可能的。我不能创建多个“组”键,因为它们并不是唯一的。也许是一个数组作为“组”的值?但我觉得这不可能。我希望有人能帮我。谢谢!
发布于 2016-11-20 17:35:28
您可以使用数组,但最好是使用具有生成键的对象。见下面拟议的数据库结构:
"root": {
"users": {
"$userId": {
...
"groups": {
"$groupId": true
}
}
},
"groups": {
"$groupId": {
...
}
}
}我还没有为iOS编写代码,所以下面的示例是在JavaScript中。使用上面的数据库结构,您可以将用户添加到组中,并读取用户所在的组如下:
var currentUserId = ?; // The userId of the logged in user
var currentUserGroupsRef = rootRef.child('user').child(currentUserId).child('groups');
// Join group
var groupId = ?; // The id of a group that the user joins
currentUserGroupsRef.child(groupId).set(true); // Add the groupId to the users groups, letting firebase generate an Id
// Read groups
currentUserGroupsRef.on('value', (snap) => {
if (!snap.val()) {
var userGroupIds = []; // user is not in any groups, empty array of groupIds
return;
}
var userGroupIds = Object.keys(snap.val()); // Array of groupIds
});https://stackoverflow.com/questions/40707006
复制相似问题