Parse platform 不一致的结果在PFUser和PFObjects之间创建双向关系

Parse platform 不一致的结果在PFUser和PFObjects之间创建双向关系,parse-platform,Parse Platform,我试图使用PFRelations在PFUser和一些PFObjects之间创建双向关系 首先,我创建一个帖子并将其保存在后台。 在完成块中,我在PFUser中添加新的帖子,方法是将已经与该用户相关的帖子列表追加,并使用同步save调用重新保存该用户 投递始终以与用户的正确关系正确保存,但是,与用户中投递的关系仅间歇工作。每次通过代码都会得到正确的结果,这让我相信这是某种竞赛条件。什么会导致这种行为?有没有更好的方法来实现理想的关系 保存帖子时,因为帖子有一列存储所有者,所以所有者(父级)也会自动

我试图使用PFRelations在PFUser和一些PFObjects之间创建双向关系

首先,我创建一个帖子并将其保存在后台。 在完成块中,我在PFUser中添加新的帖子,方法是将已经与该用户相关的帖子列表追加,并使用同步save调用重新保存该用户

投递始终以与用户的正确关系正确保存,但是,与用户中投递的关系仅间歇工作。每次通过代码都会得到正确的结果,这让我相信这是某种竞赛条件。什么会导致这种行为?有没有更好的方法来实现理想的关系

保存帖子时,因为帖子有一列存储所有者,所以所有者(父级)也会自动保存,这是一个非常好的解析功能


当您单步执行代码时,将在下次重新保存之前执行并完成自动保存。但是当您运行代码时,无法保证哪个保存到PFUser对象会首先发生。

这可以通过一个操作作为云代码实现。当你的帖子被保存后,获取当前用户,并将他们之间的关系添加到帖子中。当然-但是考虑到这似乎是一种有效的方法,我想知道为什么它不完全成功。我还希望有更少的活动部件-暂时避免云代码。
PFUser *currentUser = [PFUser currentUser];
PFObject *posting = [PFObject objectWithClassName:@"Postings"];
__weak HLReviewPostItemViewController *myself = self;

posting[@"title"] = self.createdItem[@"title"];
posting[@"price"] = self.createdItem[@"price"];

posting[@"owner"] = currentUser;

[posting saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {
        PFGeoPoint *currentGeoPoint = [myself.locationManager getCurrentGeoPoint];
        [currentUser setObject:currentGeoPoint forKey:@"geoPoint"];

        PFRelation *postingsForUser = [currentUser relationForKey:@"postings"];
        [postingsForUser addObject:posting];

        NSError *error;
        [currentUser save:&error];
        if (!error) {
            [myself.dataManager fetchLocalUsers];
        } else {
                NSLog(@"Error saving Posting in user relation: %@", error);
        }
    } else {
        NSLog(@"Error saving Posting: %@", error);
    }
}];