考虑以下存储在Firebase中的JSON格式数据库 -
"root":
{
"survey":
{
"1":
{
"survey_question":"Who is a better player?",
"option1":"Ronaldo",
"option2":"Messi",
"time_posted":7854123265,
"visibility":1
},
"2":
{
"survey_question":"Who is a better singer?",
"option1":"Ed Sheeran",
"option2":"Chris Martin",
"time_posted":9865321245,
"visibility":1
}
}
}
我可以编写一个 Firebase 云函数,该函数在创建新调查时触发。
但是我应该怎么做才能在 24 小时后将可见性更新为0
time_posted
?
编辑:我检查了这个问题的解决方案,并按照说明-
- 在
index.js
文件中编写了函数,我希望触发并成功部署它。 - 在 cron-job.org 创建了一个 cron 作业,其函数地址如下 -
https://us-central1-<PROJECT-ID>.cloudfunctions.net/<FUNCTION-NAME>?key=<PROJECT-KEY>
cron 作业执行失败,并显示以下错误消息 -Error: Forbidden
Your client does not have permission to get URL /<FUNCTION-NAME>?key=<PROJECT-KEY> from this server.
使用time_posted
来检查Date.now() - time_posted <= 24 * 60 * 60 * 1000
可能更容易(确保它在发布后的一天内)。
或者,在child_added
事件中,您可以执行一个setTimeout
,在 24 小时后回拨并更新visibility
标志,但这似乎有点混乱。