使用两个 PFUser 对象查询对象时,如何更新 Parse 中的值?

How can I update a value in Parse when using two PFUser Object to query objects?

我是 iOS 和 Parse 的新手。现在我正在尝试使用 Parse 在 iOS 中创建一个社交网络应用程序。在我的应用程序中,我正在创建一个好友系统,允许用户与他人建立联系。

假设有一个用户向当前用户发送了一个请求,请求被成功接收。为了确认请求,我使用两个 PFUser 对象查询 class,它们是 当前用户 [PFUser currentUser] 发送请求的用户 (PFUser *user1)。然后,我将状态从 Request 更新为 Confirm 以便我可以在这两个用户之间创建连接。

代码如下:

PFQuery *connectActivity = [PFQuery queryWithClassName:FriendClass];
[connectActivity whereKey:@"fromUser" equalTo:user1];
[connectActivity whereKey:@"toUser" equalTo:[PFUser currentUser]];
[connectActivity whereKey:@"status" equalTo:@"Request"];
[connectActivity getFirstObjectInBackgroundWithBlock:^(PFObject * _Nullable object, NSError * _Nullable error) {
      if (!error) {
             [object setObject:@"status" forKey:@"Confirm"];
             [object saveInBackground];
      }
}];

但是,当我 运行 代码时,它向我显示 Cannot set fromUser on FriendClass to a user other than current user. (Code:141) 的错误,并且没有任何结果。我不知道这个错误。

有人知道它为什么会发生以及如何让它发挥作用吗?非常感谢!

我敢打赌,您有一个 FriendClass 的 beforeSave 触发器,它会检查是否 fromUser == request.user,如果没有,则吐回该错误。您可以将其包装在检查 object.dirty("fromUser")

的 if 语句中