firebase - Firebase 托管 Webhook
问题描述
我有一个我试图用 Firebase Hosting 解决的特定用例,它如下:
- 我正在使用 Gridsome 生成静态网站
- 在构建之前,Gridsome 使用 Graphql 并从 Headless CMS 中抓取一些博客文章,然后用于为每个博客创建静态页面
- 目前,每当我通过 Github 合并到 master 时,Gridsome 构建都会自动部署到 Firebase Hosting(这已经很好用了)
我面临的问题是,每当我在无头 CMS 上发布新博客文章时,我都想触发 Gridsome 构建 + Firebase 托管部署(它可以选择在新博客文章上发布 POST)。我知道这在Vercel等其他解决方案上是可能的,但现在我正在使用 Firebase 并且想坚持使用该套件。
我试过使用 REST API 没有任何运气,而Github Webhooks 反过来工作,并没有解决我的问题。我在想可能有机会调用 Firebase 函数并使用 CLI 进行部署或其他东西。
我想知道的是这个功能是否存在以及如何完成这个场景。
谢谢。
解决方案
我假设您使用 Github Actions 来构建您的项目,然后将其部署到 firebase。
我向您推荐的最简单的解决方案是将您的操作设置为不仅在推送到您的主分支时触发,而且还触发请求。
脚步
repository_dispatch
为事件设置你的动作触发器
on:
repository_dispatch:
然后为您的 Github 帐户创建一个访问令牌repo
并workflow
获得许可。
现在您只需在以下 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 也应该调度。
推荐阅读
- c# - 使用 C# 将多个嵌套的 XML 文件解析为数据表
- algorithm - 在 Rust 中获取 slice 或 Vec 中最大或最小浮点值的索引的惯用方法是什么?
- python - 在调用函数之前使用条目小部件设置变量
- okhttp3 - OKHttp 原因:java.io.EOFException: \n not found: limit=0 content=...
- sql-server - SQL Server Spatial:是几何类型还是地理类型的变量?
- java - 了解名为“分区”的链表算法中的无限循环
- java - Spring Batch JmsItemReader 无法正常工作
- system-verilog - Quartus Prime 编译 ROM
- typescript - 尝试编写 TypeScript 定义文件 — JSX 元素类型“SideMenu”没有任何构造或调用签名
- java - 动态添加的菜单项在导航抽屉中单击时消失