クラウド コード/javascript を使用したことはありません。クラウド関数に渡された objectId を使用してユーザーを検索し、友人を保持するそのユーザーの関係を更新し、最終的にそのユーザーを保存するために、解析クラウド コードを作成しようとしています。
以下は私が使用している関数です:
Parse.Cloud.define("addFriendToFriendsRelation", function(request, response) {
Parse.Cloud.useMasterKey();
var fromUserObjectId = request.params.fromUserObjectId;
var acceptingUser = request.params.user;
var query = new Parse.Query(Parse.User);
// find the user the request was from using the objectId
query.get(fromUserObjectId, {
success: function(user) {
var fromUser = user
var relation = fromUser.relation("friends");
relation.add(acceptingUser);
fromUser.save({
success: function() {
response.success("Successfully saved the users relation")
},
error: function() {
response.error("Save failed");
}
});
},
error: function() {
response.error("Save failed");
}
});
});
Parse docs を使用して、これをつなぎ合わせることができました。しかし、私は本当にそれをうまくフォローしていません。JavaScript を使用したことがなく、構文がわかりにくいと感じています。
次に、関数を呼び出します
//fromUser is a PFUser object defined further up
[PFCloud callFunctionInBackground:@"addFriendToFriendsRelation" withParameters:@{@"fromUserObjectId" : fromUser.objectId} block:^(id object, NSError *error) {
}
ただし、この関数が呼び出されるたびに、成功/エラーはエラーと呼ばれませんでした。関数で response.success と response.error を呼び出しているので、それがなぜなのかわかりませんか? 誰か手を貸してくれませんか?
編集:さらに検索を行った後、response.successとresponse.errorはそれぞれ1回だけ呼び出す必要があるように見えるので、関数を次のように変更しました:
arse.Cloud.define("addFriendToFriendsRelation", function(request, response) {
Parse.Cloud.useMasterKey();
var fromUserId = request.params.fromUserObjectId;
console.log("fromUserId:");
console.log(fromUserId);
var acceptingUser = request.params.user;
console.log("acceptingUser:")
console.log(acceptingUser);
var query = new Parse.Query(Parse.User);
query.get(fromUserId, {
success: function(user) {
console.log("found user:");
console.log(user);
var fromUser = user;
var relation = fromUser.relation("friends");
relation.add(acceptingUser);
console.log("added accepting user to relation");
fromUser.save({
success: function() {
response.success("successfully saved user")
},
error: function() {
response.error("error saving user");
}
});
console.log("found a user");
},
error: function() {
console.log("error finding user");
}
});
});