首页
学习
活动
专区
圈层
工具
发布

多组
EN

Stack Overflow用户
提问于 2016-11-20 17:22:25
回答 1查看 123关注 0票数 0

我正在尝试创建一个小组聊天应用程序。玩家可以加入多个组。我面临的问题是,我不知道如何在一个球员中添加多个组。如果玩家是在1组中加入的,我可以使用' group‘作为键,使用组名作为值,但是对于多个组,这是不可能的。我不能创建多个“组”键,因为它们并不是唯一的。也许是一个数组作为“组”的值?但我觉得这不可能。我希望有人能帮我。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-20 17:35:28

您可以使用数组,但最好是使用具有生成键的对象。见下面拟议的数据库结构:

代码语言:javascript
复制
"root": {
    "users": {
        "$userId": {
            ...
            "groups": {
                "$groupId": true
            }
        }
    },
    "groups": {
        "$groupId": {
            ...
        }
    }
}

我还没有为iOS编写代码,所以下面的示例是在JavaScript中。使用上面的数据库结构,您可以将用户添加到组中,并读取用户所在的组如下:

代码语言: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
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40707006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档