我无法弄清楚如何更改Firebase数据库的值,然后在一定时间(30分钟)后再将其更改回去,这一切都是在服务器端完成的,而不是在实际设备日期之前完成。
我假设我需要Firebase功能。
如果我做不到,还有其他方法可以将Firebase保留为主数据库吗?
我真的不需要任何代码,只需要其背后的逻辑即可。
答案 0 :(得分:0)
Firebase实时数据库中没有逻辑可以在一定时间后自动更改值。通常,您将在Cloud Functions或客户端设备中的应用中运行此类代码。
在这两种情况下,您都可以继续使用Firebase实时数据库,因为您只是在与之交互。在Cloud Functions中,您将通过Admin SDK进行操作。
这是几个步骤:
创建一个Cloud Function,该功能查询数据库以查找过期的项目并更改它们的值。这段代码使用了Node.js的Admin SDK,但与您要在Web客户端中运行的代码非常相似。
将Cloud Function绑定到每分钟左右运行一次的cron作业(取决于您希望超时的准确度)。有关某些选项,请参见Cloud Functions for Firebase trigger on time?
我建议您也检查以下类似问题:
答案 1 :(得分:0)
我会质疑您的数据模型。您可能要考虑使用时间戳,而不是使用布尔值。
例如,如果您的数据模型当前是基于以下内容的话:
Permissions
- user_id
- is_allowed (boolean)
您可能要改用它:
Permissions
- user_id
- allow_until (timestamp)
然后您的应用程序代码可以只检查当前时间是否早于allow_until时间戳。