从CloudKit迁移到Firestore(更改令牌实现)

时间:2019-01-01 18:36:20

标签: firebase synchronization google-cloud-firestore google-cloud-functions cloudkit

我想将我的iOS应用程序从CloudKit迁移到Firestore。大多数架构更改都很简单,但是有一个警告我不知道如何克服。

在CloudKit中,我可以在客户端上保存更改令牌,然后在获取或保存数据时将其传递给CloudKit函数。在提取期间,它确保我仅收到那些以前没有收到的更新。保存期间,除非我的更改令牌与最新的可用令牌相对应,否则该操作将失败,直到我先执行提取。就我而言,这种设计是理想的。

不幸的是,似乎这种功能在Firestore中不是开箱即用的。例如,在将侦听器附加到文档快照时,无法告诉Firestore“这是令牌X,它对应于我拥有的最新更新,并且我希望接收其后的所有更新”。

理论上,我可以使用云功能自己实现更改令牌功能。但是,问题在于,两个设备可以尝试同时执行更新,而我将需要找到一种方法来确保其中一个更新在另一个更新开始之前已完全执行(以使其中一个失败并显示“无效”更改令牌”)。

对我来说,这听起来像是一种常见的设计模式,但我一直在努力寻找有关如何在Firebase中正确实现它的想法。

因此,我想问您一些有关如何继续将“更改令牌”功能从CloudKit迁移到Firestore的建议。

请注意,我正在进行后端开发的第一步,因此我的术语远非完美。

0 个答案:

没有答案