【问题标题】:Firebase multiple devices synchronizationFirebase 多设备同步
【发布时间】:2018-08-29 23:52:06
【问题描述】:

在以下 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 数据库中获取列表,然后修改以将项目添加到列表顶部?

-- 谢谢大卫。

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

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

    【讨论】:

    • 感谢弗兰克,它有帮助。问题的第二部分是,当添加 Cake 时,作为模式的一部分,也有一个项目顺序。所以它意味着蛋糕和1。所以项目顺序意味着它将是列表中要显示的第一个项目。现在 iPad 设备,会有 Candles 和 1。所以根据你同步后的回复,它将是 Cake 1 和 Candles 1。所以有没有可能当 iPad 在网络上然后发生同步时,开发人员可以编写代码来当它看到 Cake 已经存在时,将 Candles 的顺序更改为 2,以便在 Firebase 中:Cake 1,Candles 2。
    • 如果您调用push(),那么即使客户端未连接到服务器,订单也会按时间顺序排列(大部分情况下)。如果您定义自己的索引机制,那么您将必须找到自己的方法来防止索引重叠。但是由于 Firebase 的推送 ID 正是为了解决这个问题而创建的,我不知道您为什么不在这里使用它们。
    • 感谢 Frank 的快速回复。
    猜你喜欢
    • 2015-07-13
    • 2021-07-25
    • 2021-04-23
    • 1970-01-01
    • 2020-11-07
    • 2017-02-28
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多