我在Parse.com的Cloud Code中定义了一个函数。根据{{3}},request.usr应该是“正在发出请求的Parse.User。如果没有登录用户,则不会设置。”。
我从iOS调用我的方法,用户对象是“空”,因为所有属性都是未定义的。
我想在调用云代码时我不知道如何设置它。
以下是我的作品:
Parse.Cloud.define("userRatesMovie", function(request, response) {
//Parameters: user, movieId, rating
var user = request.user;
var username = "nothing"
var movieId = request.params.movieId;
var rating = request.params.rating;
var aux = "User: " + username + " Rated: " + movieId + " with a " + rating + " user " + user.username +":" +user.objectId;
console.log(aux);
//Fetch for previous rating for this user,movie pair
response.success(aux);
});
现在我只是写作并返回一条日志行。
//Test code
PFUser *pfUser = [PFUser currentUser];
NSLog(@"User Id:%@ Username:%@",pfUser.objectId, pfUser.username);
[PFCloud callFunctionInBackground:@"userRatesMovie"
withParameters:@{
@"movieId":@"12345",
@"rating":@"3"}
block:^(NSString *someString, NSError *error) {
if (!error) {
NSLog(@"userRatesMovie:%@",someString);
}
}];
我首先检查我是否有PFUser,然后调用我的云代码
User Id:32P3Hwk1Hv Username:1NpFRFVPFJT45znXosx8g8Ay2
userRatesMovie:User: nothing Rated: 12345 with a 3 user undefined:undefined
正如您所见,user.username和user.objectId未定义。
答案 0 :(得分:2)
错误不是发送用户,而是检查它的代码:
user.username
这不是有效的Cloud Code语法。正确的代码应如下所示:
user.get("username")
然后一切正常......