【问题标题】:I'd like to set a value on Firebase database to True just for a certain amount of time我想将 Firebase 数据库上的值设置为 True 一段时间
【发布时间】:2018-11-20 23:23:39
【问题描述】:

我不知道如何更改 Firebase 数据库的值,然后在一定时间(30 分钟)后将其更改回来,在服务器端执行所有操作,而不是在实际设备日期之前。

我假设我需要 Firebase 功能。

如果我做不到,有没有其他方法可以让 Firebase 作为主数据库?

我真的不需要任何代码,只需要它背后的逻辑。

【问题讨论】:

    标签: firebase mobile firebase-realtime-database


    【解决方案1】:

    我会质疑您的数据模型。您可能需要考虑使用时间戳,而不是使用布尔值。

    例如,如果您的数据模型目前类似于:

    Permissions
    - user_id
    - is_allowed (boolean)
    

    您可能想改用这个:

    Permissions
    - user_id
    - allow_until (timestamp)
    

    然后,您的应用程序代码可以检查当前时间是否早于 allow_until 时间戳。

    【讨论】:

      【解决方案2】:

      Firebase 实时数据库中没有逻辑可以在一定时间后自动更改值。您通常会在 Cloud Functions 或客户端设备的应用中运行此类代码。

      在这两种情况下,您都可以继续使用 Firebase 实时数据库,因为您只是与之交互。在 Cloud Functions 中,您将通过 Admin SDK 执行此操作。

      只需几步:

      1. 创建一个云函数来查询数据库以查找过期项目,并更改它们的值。此代码使用 Node.js 的 Admin SDK,但与您在 Web 客户端中运行的代码非常相似。

      2. 将该云函数绑定到每分钟左右运行一次的 cron 作业(取决于您希望超时的准确程度)。有关一些选项,请参阅Cloud Functions for Firebase trigger on time?

      我建议你也看看这些类似的问题:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-07
        • 2021-12-12
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        • 2020-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多