好吧,過了一段時間,我能夠爲我的方案獲得解決方案。這應該適用於用戶接受其他用戶時的簡單關係。
首先我的swift代碼。請注意,我創建了一個將PFUser作爲參數的函數。我這樣做是爲了重構一個更大的函數。此用戶是我們想要將當前用戶保存到雲代碼中的用戶。
func createRelation(otherUser: PFUser)
{
let fromUser: PFUser = otherUser
let params = NSMutableDictionary()
params.setObject(fromUser.objectId!, forKey: "Friends")
PFCloud.callFunctionInBackground("addFriendToFriendsRelation", withParameters: params as [NSObject : AnyObject]) {
(object:AnyObject?, error: NSError?) -> Void in
//add the person who sent the request as a friend of the current user
let friendsRelation: PFRelation = self.currentUser!.relationForKey("Friends")
friendsRelation.addObject(fromUser)
self.currentUser!.saveInBackgroundWithBlock({
(succeeded: Bool, error: NSError?) -> Void in
if succeeded {
println("Relation added to the current user")
} else {
println("Handle error in adding relation to current user ")
}
})
}
}
現在的解析雲代碼
Parse.Cloud.define("addFriendToFriendsRelation", function(request, response) {
Parse.Cloud.useMasterKey();
//get the friend requestId from params
var friendRequestId = request.params.Friends;
var query = new Parse.Query(Parse.User);
//get the friend request object
query.get(friendRequestId, {
success: function(friendRequest) {
//get the user the request was from
var fromUser = friendRequest;
//get the user the request is to
var toUser = Parse.User.current() ;
var relation = fromUser.relation("Friends");
//add the user the request was to (the accepting user) to the fromUsers friends
relation.add(toUser);
//save the fromUser
fromUser.save(null, {
success: function() {
response.success("saved relation and updated friendRequest");
},
error: function(error) {
response.error(error);
}
});
},
error: function(error) {
response.error(error);
}
});
});
而且一定要使用命令parse deploy
在解析目錄更新
我複製並粘貼此代碼main.js,但得到錯誤: 2015-09-16 18:51:24.286 Gestern [6919:806406] [Error]:ReferenceError:parent is not defined at envalue(Parse.js:13:7510) at e.query.get .success(主要。js:60:22) at e。(Parse.js:12:27827) 在ES(Parse.js:12:26759) 在envalue(Parse.js:12:26178) 在ES(Parse.js:12:26887) 在烯值(Parse.js:12:26178) at e。 (Parse.js:12:26831) at e.s(Parse.js:12:26759) at Parse.js:12:27145(代碼:141,版本:1.7.5) 可能是什麼問題?我沒有使用JavaScript的經驗... –
@NickPodratz確保你實際上已經解析雲安裝,你也需要了解你如何規劃你的數據,並相應地使用代碼,我有一個非常具體的場景,但我通過我需要swift的id,還有一點需要注意的是分析不會爲你創建關係列,所以在你的用戶類中你需要添加 – kareem
感謝你的建議,我已經對它進行了修改。我檢查是否設置了一切,然後學習了一些JavaScript以便爲我的目的正確構建代碼。但經過進一步研究後,我得出結論,這似乎是Parse SDK中的一個錯誤,因爲另一個用戶報告了類似的問題。 https://groups.google.com/forum/#!topic/parse-developers/-wmVSquWrVI。 –