如何使我的React应用程序在00:00小时(即新的一天开始)自动在数据库中创建一个条目?

时间:2018-09-09 14:10:01

标签: reactjs firebase-realtime-database

我在我的React App中使用axios,并且我有以下代码::-

axios.put(`Dates/${ todaysDate.getFullYear() }/${ this.utilMonthInAlpha(todaysDate.getMonth()) }/${ ( todaysDate.getDate() > 9 ) ? todaysDate.getDate() : '0' + todaysDate.getDate() }/.json` , {
        goodHabits : userStoredHabits,
        totalScore : '0'
});

上面的代码位于我的componentDidMount生命周期挂钩中,因此,每次用户加载应用程序时,就会执行上述代码,在我的google firebase数据库中,该条目如下所示:

google firebase database

现在,无论用户是否访问我的应用程序,我都希望每月输入每一天的数据,那么我该怎么做呢?因此,从5日至9日您可以看到,当用户尚未访问该应用程序时,不会创建该条目,那么如何使我的React应用程序自动在数据库中创建一个条目?

例如,今天理想的情况是9th及其周围的7:37 PM,因此,当时钟到达00:00及其10时,我希望我的应用程序自动将其输入数据库, 我该怎么做呢 ?

1 个答案:

答案 0 :(得分:2)

在服务器上

如果您希望在用户不使用应用程序时更新数据库,则必须在服务器上运行某些内容以进行更新。

您可以使用Cloud Function来更新数据库,以响应每小时的Cloud Pub / Sub触发器。

仅当每小时作业在用户所在的时区中最接近午夜运行时,您才能存储用户的时区并通过该功能执行数据库更新。

可以使用functions-cron软件包来设置cron作业。自述文件包含有关设置每小时工作的说明。

https://github.com/FirebaseExtended/functions-cron

在应用中

每天午夜更新数据库对您的应用真的很重要吗?也许您的应用可以在打开数据库时查询数据库,并检查错过了哪些更新,然后将它们全部发送到数据库。