我不知道如何更改Firebase数据库的值,然后在一定时间(30分钟(后将其更改回,在服务器端完成所有操作,而不是在实际设备日期之前。
我想我需要Firebase函数。
如果我做不到,有没有其他方法可以保持Firebase作为主数据库?
我真的不需要任何代码,只需要它背后的逻辑。
我会质疑您的数据模型。您可能需要考虑使用时间戳,而不是使用布尔值。
例如,如果您的数据模型当前为以下类型:
Permissions
- user_id
- is_allowed (boolean)
你可能想用这个代替:
Permissions
- user_id
- allow_until (timestamp)
然后,应用程序代码可以检查当前时间是否早于allow_until时间戳。
Firebase实时数据库中没有逻辑可以在一定时间后自动更改值。您通常会在云功能或客户端设备中的应用程序中运行此类代码。
在这两种情况下,您都可以继续使用Firebase实时数据库,因为您只需要与之交互。在云功能中,您将通过管理SDK来实现这一点。
这是几个步骤:
-
创建一个云函数,该函数查询数据库以查找过期项目,并更改这些项目的值。这段代码使用Node.js的Admin SDK,但与您在web客户端中运行的代码非常相似。
-
将该Cloud函数绑定到每分钟左右运行一次的cron作业(取决于您希望超时的准确性(。有关某些选项,请参阅Firebase触发器的云函数?
我建议你也看看这些类似的问题:
- 删除超过2小时的firebase数据
- 如何删除firebase数据后";n〃;天(从Android客户端执行相同操作(
- 如何清除firebase实时数据库中的旧内容