我在parse.com数据浏览器中创建了一个角色。我还创建了一些User对象。我无法将我已创建的用户与该角色相关联。
我只能通过点击"查看关系"来查看将用户与角色相关联的方法。 Role对象的按钮,然后创建一个新用户。但是,我不想要新用户。我想将现有用户与角色相关联。
如何使用parse.com数据浏览器将现有用户与新创建的角色相关联?
答案 0 :(得分:2)
据我了解,这是不可能通过网站。最快的方法是使用cUrl示例并将其修改以供您自己使用。当您登录Parse.com并转到documentation for the REST API call to update a role时,您可以使用自己的API密钥复制示例。剩下要做的就是更改用户ID和角色ID。它会给你带来这样的东西:
curl -X PUT \
-H "X-Parse-Application-Id: <APP-ID>" \
-H "X-Parse-Master-Key: <MASTER-KEY>" \
-H "Content-Type: application/json" \
-d '{
"users": {
"__op": "AddRelation",
"objects": [
{
"__type": "Pointer",
"className": "_User",
"objectId": "<USER-ID>"
}
]
}
}' \
https://api.parse.com/1/roles/<ROLE-ID>
答案 1 :(得分:0)
目前无法在数据浏览器界面中向对象添加对象(包括将用户添加到角色)
请参阅https://www.parse.com/questions/how-can-i-add-objects-to-a-relation
根据您的设置(例如,如果您已使用CLP和/或ACL设置权限),您还可以将REST API密钥与cURL一起使用或使用您的应用程序(在应用程序本身或云代码中) - 另见https://parse.com/docs/rest/guide#roles-updating-roles
使用适当的名称,ID和密钥替换以下相关标签(例如admin
和USER_ID
)
// Find admin role
var Role = Parse.Object.extend("_Role");
var query = new Parse.Query(Role);
query.equalTo("name", "admin");
query.find({ success: function(results) {
var roleObject = results[0];
// Add users here
// Specify users to add
var usersToAddToRole = ["USER_ID"];
for (var i = 0; i < usersToAddToRole.length; i++) {
roleObject.getUsers().add(usersToAddToRole[i]);
}
// Or add current user only
var user = Parse.User.current();
var relation = roleObject.relation("users");
relation.add(user);
roleObject.save();
} });
上面Parse问题的链接还建议您可以使用REST API密钥而不是Master密钥发出cURL请求(不要在客户端应用程序中使用Master密钥 - 仅在服务器上或在手动cURL请求中使用!)
curl -X PUT \
-H "X-Parse-Application-Id: APP_ID" \
-H "X-Parse-REST-API-Key: REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"users":{"__op":"AddRelation","objects":[{"__type":"Pointer","className":"_User","objectId":"USER_ID"}]}}' \
https://api.parse.com/1/roles/ROLE_ID
使用REST API管理角色的主要文档在https://parse.com/docs/rest/guide#roles 有关安全性的更多详细信息,请查看http://blog.parse.com/learn/engineering/parse-security-i-are-you-the-key-master/