如何使用Parse.com创建ParseUsers组?

时间:2014-02-03 20:19:29

标签: android grouping parse-platform

目前我正在使用Parse.com来创建多个ParseUsers。这非常有效,每个用户都可以单独登录。但是从这里我想扩展我的应用程序以允许用户创建用户组,因此只有这些用户之间相关和共享的数据。这意味着当用户登录时,他们可以看到他们所属的组的列表,并且从那里可以仅仅向该组的用户共享数据。什么是解决这个问题的最佳方法,是否有人为了理解这个概念而有任何我可以遵循的例子或教程?

我考虑过创建一个Group类,然后在一个数组中存储User的ID,然后允许每个User存储他们当前成员的Group ID数组。我只是不确定如何解决这个问题。

提前致谢!

2 个答案:

答案 0 :(得分:3)

我最终做了如下所示:

 ParseQuery<ParseRole> query = ParseRole.getQuery();
 Intent intent = getActivity().getIntent();
 String groupId = intent.getStringExtra("groupId");
 query.whereEqualTo("objectId", groupId);
 groupUsers = new ArrayList<String>();
 query.findInBackground(new FindCallback<ParseRole>() {
     @Override
     public void done(List<ParseRole> objects, ParseException e) {
        if(e == null) {
            for(ParseRole role : objects) {
                ParseRelation<ParseUser> usersRelation = role.getRelation("users");
                ParseQuery<ParseUser> usersQuery = usersRelation.getQuery();
                usersQuery.findInBackground(new FindCallback<ParseUser>() {
                    @Override
                    public void done(List<ParseUser> objects, ParseException e) {
                        for(ParseUser user : objects) {
                            groupUsers.add(user.getUsername());
                        }
                    }           
                });
            }
         } else {
             Toast.makeText(getActivity(), "ERROR", Toast.LENGTH_SHORT).show();
         }              
      }                  
 });       

我从发送给我的Intent Fragment传递了我正在检查的ListView组ID,然后使用我从查询中返回的列表填充了{{1}}在具有特定组ID的Parse数据库上。我希望这可以帮助其他与我有同样问题的人。祝你好运!

答案 1 :(得分:0)

由于您可能希望将其用于安全性并使代码/用户更容易,因此请查看Roles security feature

您可以在角色中添加/删除用户,并为角色而不是用户分配ACL权限。这样,当从角色添加/删除人员时,权限不需要任何更改。

最初根据帐户类型允许您创建的角色数量有限制,但我相信这个限制已于去年删除。