用于计划发布的 Firebase 和 GCP Cloud 任务

Posted

技术标签:

【中文标题】用于计划发布的 Firebase 和 GCP Cloud 任务【英文标题】:Firebase and GCP Cloud Tasks for scheduled posting 【发布时间】:2021-07-01 18:08:22 【问题描述】:

我希望在我的 firebase 应用程序中集成自动发布服务。用户将从客户端应用程序创建具有所需发布时间的帖子,该帖子将添加到我的 Firestore 数据库中。

我希望能够创建一个 Cloud Task,以便在所需时间(可能是未来几周/几个月)将帖子实际添加到客户端仪表板。

创建云任务的云功能 Firestore 触发器是最佳实现吗?

我知道 Cloud Scheduler/Pub/Sub /App Engine 通常是推荐用于按正常计划运行的功能的流程,即每天/每周一次。但我希望允许我的用户指定他们希望发送帖子的确切时间。

我使用 Cloud Tasks 的想法正确吗?

任何见解将不胜感激!

【问题讨论】:

您也可以使用 Cloud Composer 来安排任务 谢谢,我会调查的!当前的实现是否有意义? 【参考方案1】:

我认为最好的方法是使用 Cloud Functions for Firebase 客户端 SDK,让您可以直接从 Firebase 应用调用函数。要以这种方式从您的应用调用函数,请在 Cloud Functions 中编写和部署一个 HTTPS 可调用函数,然后添加客户端逻辑以从您的应用调用该函数。然后,如果您想安排函数在指定时间运行,请使用 functions.pubsub.schedule().onRun() 此方法创建一个 Pub/Sub 主题并使用 Cloud Scheduler 触发该主题上的事件,确保您的函数运行在所需的时间表上。

【讨论】:

我知道使用 Cloud Tasks,我每月可以免费创建多达 100 万个任务(这非常慷慨),但使用 Cloud Scheduler,我不太熟悉这些限制。因为听起来在那个实现中我必须创建大量的云功能,对吗?我对云调度程序的工作原理不太熟悉,如果我只是想定期(每天、每周等)运行一个函数 你不会编写大量的云函数,你只会为 Firebase 编写一个云函数。每当客户想要将新帖子推送到仪表板时,您的应用程序都会调用它。如果他决定稍后在特定时间安排异步帖子,那么您可以在 Cloud Tasks 上安排它。 Cloud Functions 可以很好地与 Cloud Tasks 配合使用。

以上是关于用于计划发布的 Firebase 和 GCP Cloud 任务的主要内容,如果未能解决你的问题,请参考以下文章

在 GCP Console 中创建存储分区后无法访问 Firebase 存储

计划的 Firebase 功能 - 不写入 Firestore

分配 GCP 函数服务帐号角色以使用 Terraform 与 Firebase 互动

Firebase 身份验证日志 - GCP

我可以完全从 CLI 或脚本创建和配置 GCP 项目 + Firebase 吗?

Firebase + Next.js 无服务器,在 GCP 上 - 如何管理登台、生产 + 本地