目前我正在使用Parse.com来创建多个ParseUsers。这非常有效,每个用户都可以单独登录。但是从这里我想扩展我的应用程序以允许用户创建用户组,因此只有这些用户之间相关和共享的数据。这意味着当用户登录时,他们可以看到他们所属的组的列表,并且从那里可以仅仅向该组的用户共享数据。什么是解决这个问题的最佳方法,是否有人为了理解这个概念而有任何我可以遵循的例子或教程?
我考虑过创建一个Group类,然后在一个数组中存储User的ID,然后允许每个User存储他们当前成员的Group ID数组。我只是不确定如何解决这个问题。
提前致谢!
答案 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权限。这样,当从角色添加/删除人员时,权限不需要任何更改。
最初根据帐户类型允许您创建的角色数量有限制,但我相信这个限制已于去年删除。