使用iOS的Parse SDK,我有2个表:
Game
- UserA : Pointer <_User>
- UserB : Pointer <_User>
- Round : Number
- IsTurnOfUserA : Bool
RoundScore
- GameId : Pointer <Game>
- User : Pointer <_User>
- Score : Number
- etc
一个游戏在2个用户之间进行3回合。
当用户结束一回合时,它将切换
Game.IsTurnOfUserA
并将该回合的分数保存到RoundScore
表中。在iOS中,我没有找到更新游戏表并最终保存RoundScore的方法(如果没有网络,可能会稍后)。
两者都必须完成或根本不需要完成,但是我不想最后只成功完成两个查询中的一个,而另一个却失败了。
使用Cloud Code,应该很容易做到,但是最终没有调用功能。
更新:也许可以尝试使用Parse的本地数据库?但是我还不知道该工具。
重要提示:RoundScore的字段取决于Game。如果游戏对象是新的,它还没有ObjectId,但是我仍然需要将其链接到RoundScore对象。
最佳答案
不幸的是,使用saveEventually
是不可能的。
您需要做的是实现自己的网络检查代码并调用将同时保存两者的云方法。那将是最好的选择。
您可以尝试的一种方法是将合并的数据保存到另一个类,并在服务器上进行后台作业,将单个临时行变成每个表中的一行,然后删除该临时行。
这种黑客的缺点是后台作业只能每15分钟运行一次,因此可能最多延迟15分钟。它还会增加应用程序的复杂性和开销。