【问题标题】:How can i write data with delay and offline to firebase realtime database? [closed]如何将延迟和离线的数据写入firebase实时数据库? [关闭]
【发布时间】:2019-10-06 11:58:09
【问题描述】:

我希望用户发送的数据在 10 分钟后到达 firebase 实时数据库。有捷径吗?我目前的方法非常昂贵。在我现在使用的方法中,我先将其发送到服务器。在服务器上等待 10 分钟后,我将其发送到 Firebase 实时数据库。有没有办法直接做到这一点?

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    显然,您还希望数据在 10 分钟后写入 即使用户在数据写入之前关闭应用程序

    实现此目的的唯一方法是设置第二台服务器。

    • 您的应用程序将数据写入第二个服务器,并附有说明,以便在 10 分钟后将其发送到 Firebase 数据库。

    • 第二台服务器设置了一个计划任务(或其他),在 10 分钟延迟后将数据写入 Firebase。

    为了使这个可靠,第二个服务器需要一个数据库来存储请求,以防它在有待发送的写入请求时崩溃并重新启动。然后当它重新启动时,它需要扫描它的表以查找任何应该发送的请求,然后发送它们。

    在重新阅读您的问题时,似乎可能是您已经实现的。 (尽管您没有提到崩溃和恢复问题。)


    这一切都相当奇怪和复杂,这让我想知道这是否是XY Problem 的一个例子。难道你不能立即将数据写入 Firebase,并在数据中添加一个额外的属性来说明它何时变为活动状态吗?

    【讨论】:

      【解决方案2】:

      Firebase 实时数据库中没有内置功能来向服务器发送延时写入。唯一类似的功能是onDisconnect,当服务器检测到客户端已断开连接时,它会向数据库发送写入操作。但是这个写操作没有时间延迟。

      由于 Firebase 未内置此功能,因此您必须自己构建。拥有处理延时写入的自定义服务器端代码(或云函数)是我能想到的最简单的方法。

      【讨论】:

        猜你喜欢
        • 2021-06-06
        • 2019-05-13
        • 1970-01-01
        • 1970-01-01
        • 2020-04-20
        • 1970-01-01
        • 2021-03-30
        • 2018-12-29
        • 1970-01-01
        相关资源
        最近更新 更多