首页 > 解决方案 > Firebase 托管 Webhook

问题描述

我有一个我试图用 Firebase Hosting 解决的特定用例,它如下:

  1. 我正在使用 Gridsome 生成静态网站
  2. 在构建之前,Gridsome 使用 Graphql 并从 Headless CMS 中抓取一些博客文章,然后用于为每个博客创建静态页面
  3. 目前,每当我通过 Github 合并到 master 时,Gridsome 构建都会自动部署到 Firebase Hosting(这已经很好用了)

我面临的问题是,每当我在无头 CMS 上发布新博客文章时,我都想触发 Gridsome 构建 + Firebase 托管部署(它可以选择在新博客文章上发布 POST)。我知道这在Vercel等其他解决方案上是可能的,但现在我正在使用 Firebase 并且想坚持使用该套件。

我试过使用 REST API 没有任何运气,而Github Webhooks 反过来工作,并没有解决我的问题。我在想可能有机会调用 Firebase 函数并使用 CLI 进行部署或其他东西。

我想知道的是这个功能是否存在以及如何完成这个场景。

谢谢。

标签: firebasegithubwebhooksfirebase-hostinggridsome

解决方案


我假设您使用 Github Actions 来构建您的项目,然后将其部署到 firebase。

我向您推荐的最简单的解决方案是将您的操作设置为不仅在推送到您的主分支时触发,而且还触发请求。

脚步

repository_dispatch为事件设置你的动作触发器

on:
  repository_dispatch:

然后为您的 Github 帐户创建一个访问令牌repoworkflow获得许可。

现在您只需在以下 URL 上设置您的 CMS 发布请求,并https://api.github.com/repos/<username>/<repo>/dispatches在标头中使用您的授权令牌。

例子:

curl --url 'https://api.github.com/repos/<USERNAME>/<REPO>/dispatches' \
  --header 'authorization: Bearer <TOKEN>' \
  --data '{"event_type": "content updated"}'

现在,每当您从 CMS 向端点发出 POST 请求时,您的 Action 也应该调度。


推荐阅读