我对Parse很新,我对解析如何工作感到困惑。
这里我有一个PFUser,PFGroupObject,PFUserGroupObject。其中PFUserGroupObject是"表"将用户与组相关联。
PFUserGroupObject和PFGroupObject是我的自定义PFObject
令我困惑的是,一旦我保存PFUserGroupObject,PFGroupObject也会保存到Parse。
我有两个问题:
这种行为是否正常?我知道PFUserGroupObject有一个存储PFGroupObject的变量。但是,我想知道这是否是Parse的预期行为。
//MARK - Create a New Group
var group: PFGroupObject = PFGroupObject();
group.name = "Friends Group";
//MARK - Create a Many to Many Join Table to Relate User and Group
var userGroup: PFUserGroupObject = PFUserGroupObject();
userGroup.user = PFUser.currentUser();
userGroup.group = group;
//THIS LINE CAUSES MY GROUP OBJECT TO BE SAVED TO PARSE AS WELL
PFObject.save(userGroup);
我们说我打电话了
PFObject.saveAll([group, userGroup]);
组对象是否会在Parse中保存两次?
我想了解Parse是如何工作的。 谢谢!!!!!
答案 0 :(得分:0)
当您保存具有一个或多个“子”对象的“父”对象时,它也会保存子对象。我从未使用PFGroupObjects,但我有一个指向附加到每个用户的自定义对象的指针。而不是必须保存我的自定义对象,然后保存我的用户(反之亦然),只保存我的用户也将保存我的自定义对象。
这有一些细微差别,例如尝试将指向刚刚创建的未保存对象的指针添加到另一个对象,然后保存父对象。当您在创建子对象时生成对象ID时,您实际上并未保存它,因此它是一个悬空指针。
希望这有帮助!
编辑 - 如果您想确切了解保存的内容,请在您的云端代码中添加before save trigger,以查看是否要多次保存的对象,其中包含控制台打印行。进行一些测试,并检查日志以查看调用beforeSave触发器的次数,这是您尝试保存该类型对象的次数。