我对如何从云代码更新用户感到困惑。如果有人可以帮助我解决这个问题,我将不胜感激。
我将用于此示例的云代码是:
云代码
Parse.Cloud.define("like", function(request, response) {
var userID = request.params.userID;
var User = Parse.User();
user = new User ({ objectId: userID });
user.increment("likes");
Parse.Cloud.useMasterKey();
user.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});
从 iOS 调用
[PFCloud callFunctionInBackground:@"like" withParameters:@{@"userID": self.selectedFriendID} block:^(id object, NSError *error) {
}];
问题
user = new User ({ objectId: userID });
1) 是上面代码中创建“全新”用户的"new",还是在 objectId
处“抓取”现有用户,以便可以在 上更新>user.save
?
2) 如果后者是正确的,则可以从 objectId
列以外的列“抓取”用户,并且可能从 userID
中抓取> 专栏?
例如:
user = new User ({ userID : userID });
最佳答案
这一行:
user = new User ({ objectId: userID });
创建具有已知 ID 的对象实例,它仅适用于 objectId
。您对该对象所做的任何更改都会保留,但不会更改其他数据(例如,您不会不小心清空其他列)。
如果您想通过电子邮件获取用户,则必须进行查询:
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo('email', userEmail);
userQuery.first().then(function(user) {
if (user) {
// do something with the user here
user.set('new_col', 'new text');
user.save().then(function() {
response.success();
});
} else {
// no match found, handle it or do response.error();
}
});
// the above code is async, don't put anything out here and expect it to work!
关于javascript - 解析iOS SDK + 云代码: How to update user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166238/