我有一个名为Group的对象,它将一个Users数组(默认Parse用户)存储为一列。我想列出所有这些用户'在某个组中显示名称(名为" displayName"的列),但出于某种原因,当我尝试在检索到的数组中的用户上使用.get函数时,它只向我提供当前信息用户。我检查了我的权限和ACL,并为每个用户公开读取,并且User类具有公共读写权限。这是我正在使用的代码:
var groupObject = Parse.Object.extend("Group");
var users = [];
var groupQuery = new Parse.Query(groupObject);
groupQuery.get(groupId,{
success: function(group)
{
users = group.get("Users");
for(var i=0;i<users.length;i++)
{
var user = users[i];
console.log("display name: " + user.get("displayName") + "username: " + user.get("username") + "id: " + user.id);
}
doneCallback(users);
},
error: function(object, error)
{
errorCallback(error);
}
});
我能够console.log所有的id,并且查询成功,但我唯一可以使用get(&#34; column&#34;)on是当前用户(它是组用户数组)。
答案 0 :(得分:0)
我认为您应该使用关系而不是数组来将您的用户存储在Group对象中。通过关系添加,删除,获取和访问用户对象会更容易。当用户列表变大时,您也可以避免一些头痛。然后你应该能够获取任何给定组中的所有用户,如下所示:
var groupObject = new Parse.Object("Group");
groupObject.set("objectId", yourGroupId);
var query = groupObject.relation("Users").query();
Parse.Cloud.useMasterKey();
query.find().then( function(users) {
_.each(users, function(user) {
console.log(user.get("displayName"));
});
});