使用两个 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 语句中
我是 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")