0
私は補足クラス(Matrixという名前)をターゲットとするUserクラスの友だち関係をコーディングしています。目標は、各友達に追加情報を提供することです。Parse:Cloud JSコードとSwiftが同じ結果を生成しない
ケース#1:iOS/Swiftは、期待される結果を提供します。
のdbownerがあるCurrentUserとdbPeerは#2リストからピックアップケースである
func saveRelation(user: User, state: Bool) {
if let dbOwner = self.dbUser, dbPeer = user.dbUser {
let dbMatrix = PFObject(className: "Matrix")
dbMatrix["userid"] = dbPeer
dbMatrix.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
if(error == nil) && (success == true) {
let relation = dbOwner.relationForKey("friend")
relation.addObject(dbMatrix)
dbOwner.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
if(error == nil) && (success == true) {
self.directory.friend.append(user)
Trace.log("Relation \(user.account.id)", message: "friend")
} else {
ParseError.handle(error!)
}
})
}
})
}
}
:予期しない関係したクラウド・コードの結果を解析します。 1つのリレーションのみが挿入されます。怒鳴るようなクライアントコールと
var UserGet = function(id, res) {
var query = new Parse.Query(Parse.User);
query.get(id, {
success: function(dbUser) { res.success(dbUser); },
error: function(error) { res.error(error); }
});
}
Parse.Cloud.define('Relation.friend', function(req, res) {
Parse.Cloud.useMasterKey();
var owner = req.user;
var query = UserGet(req.params.peerId, {
success: function(dbPeer) {
var Matrix = Parse.Object.extend("Matrix");
var matrix = new Matrix();
matrix.set("userId", dbPeer);
matrix.save(null, {
success: function(dbMatrix) {
var relation = owner.relation("friend");
relation.add(dbMatrix);
owner.save(null, {
success: res.success(true),
error: res.error("Update.failed") });
},
error: function(_error) {
res.error("Save.failed");
}
});
},
error: function(_error) {
res.error("Query.failed");
}
});
});
は:
func saveRelation(user: User, state: Bool) {
PFCloud.callFunctionInBackground("Relation.friend",
withParameters: [ "peerId" : user.account.id
])
{ (success: AnyObject?, error: NSError?) -> Void in
if(error == nil) && (success as? Bool == true) {
self.directory.friend.append(user)
Trace.log("Relation \(user.account.id)", message: "friend")
}
}
}
すべてのヘルプは大歓迎します。