Firebase多设备同步

Firebase多设备同步,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,需要以下Firebase场景的帮助(我不是开发人员): 假设我有两台设备:iPhone和iPad 下午3点,我的两台设备都在网络上(即,它们没有脱机) 登录iPhone应用程序后,我创建了一个没有任何物品的“生日”购物清单 然后我登录到我的iPad,我可以看到有一个购物清单“生日”,没有任何物品 下午3:30,我的iPad离线 下午3:35,我登录到我的iPhone,然后在我的“生日”购物清单上添加一个“蛋糕”项目 但由于我的iPad离线,我在购物清单上看不到“蛋糕”这个项目 下午3:45,我用

需要以下Firebase场景的帮助(我不是开发人员):

假设我有两台设备:iPhone和iPad

下午3点,我的两台设备都在网络上(即,它们没有脱机)

登录iPhone应用程序后,我创建了一个没有任何物品的“生日”购物清单

然后我登录到我的iPad,我可以看到有一个购物清单“生日”,没有任何物品

下午3:30,我的iPad离线

下午3:35,我登录到我的iPhone,然后在我的“生日”购物清单上添加一个“蛋糕”项目

但由于我的iPad离线,我在购物清单上看不到“蛋糕”这个项目

下午3:45,我用离线的iPad在购物清单上添加了一个“蜡烛”项目

现在,当我登录iPhone时,我在购物清单上只看到一个项目“蛋糕”

现在下午4:00,我的iPad已上网(即不再离线)。所以它与Firebase同步

现在下午4:10,当我登录iPhone应用程序时,我将看到: 备选案文1。只有蜡烛:iPad应用程序覆盖了购物清单。 备选案文2。蛋糕和蜡烛都是,顺序是蛋糕,然后是蜡烛 备选案文3。蜡烛和蛋糕都是,顺序是蜡烛和蛋糕

我正在寻找选项3,有可能吗?是否可以从Firebase数据库获取列表,然后修改以将该项添加到列表顶部


--谢谢David。

这一切都取决于您如何实现这一点。但是,如果您使用Firebase的
push()
方法添加项目,则无论您在线还是离线,他们都会获得保证唯一且按时间顺序排列的ID。这意味着它们按添加顺序出现:蛋糕、蜡烛。

谢谢Frank,这很有帮助。问题的第二部分是,当添加蛋糕时,作为模式的一部分,还有一个项目顺序。这意味着蛋糕和1。因此,项目顺序意味着它将是列表中要显示的第一个项目。现在iPad设备,将有蜡烛和1。因此,根据您同步后的回复,它将是蛋糕1和蜡烛1。那么,当iPad在网络上时,同步发生时,开发人员是否可以编写一个代码,在看到蛋糕已经存在时,将蜡烛的顺序更改为2,这样在Firebase中:蛋糕1,蜡烛2。如果调用
push()
,则顺序将按时间顺序排列(大部分情况下)即使客户端未连接到服务器。如果您定义自己的索引机制,那么您必须找到自己的方法来防止索引中的重叠。但由于Firebase的推送ID正是为了解决这个问题而创建的,我不知道您为什么不在这里使用它们。感谢Frank的快速响应。