【问题标题】:Version maintenance in firebase hosting while using both firebase CLI and REST API for hosting使用 firebase CLI 和 REST API 进行托管时,Firebase 托管中的版本维护
【发布时间】:2021-10-31 23:25:07
【问题描述】:

我们在 firebase 托管上托管的应用目前通过 firebase CLI 进行更新。但是,我们的应用程序可能会获得一项功能,用户可以创建一些自定义静态 Web 文件并将包含这些文件的 zip 文件上传到我们的网站,之后这些文件将作为网站的一部分提供。 (如维基/新闻文章)。例如:如果用户上传一个包含 index.html 和一些链接到 html 文件的图像的 zip 文件文件,那么网站将使用这些材料进行更新,并将在以下位置显示它们:oursite.com/username/somearticle /index.html

通过通过此 page 收集的信息,使用 Hosting REST API 似乎能够完成工作。不过,我对此解决方案提供的功能有一些疑问:

  1. 要开始使用 API,我们首先需要一个访问令牌来验证和授权 API 请求。有没有办法为使用 firebase 身份验证登录我们网站的标准用户获取此令牌?

  2. 它在文章的this part 中说,您需要所有当前现有文件和新文件的列表才能更新站点。如何访问当前属于该站点的文件列表?

  3. 在与上述问题类似的情况下,我们可能需要不时更新应用功能,这些更新是通过 CLI 完成的。如何确保这些功能更新不会覆盖用户所做的更新?换句话说,有没有办法使用 CLI 命令将更新合并到托管站点?

【问题讨论】:

  • 嘿用户2646187。你在这方面有什么进展吗?如果我们可以在这里和下面的答案中为将来找到此页面的人带来一些关闭,那就太好了。另见What should I do when someone answers my question?
  • 嘿@FrankvanPuffelen。您的回答帮助我弄清楚该怎么做,如下所示: 1. 用户上传一个 zip 文件 2. 它被解压缩并将文件上传到云存储 3. 当这些文件被上传时执行一个云函数,使它们打开公开。

标签: firebase firebase-hosting


【解决方案1】:

“当用户上传文件时”对我来说听起来并不完全像“版本控制”...... 最好使用Cloud Source Repositories 并添加一个构建触发器,该触发器将部署到 Firebase 托管。 这里解释一下:https://cloud.google.com/build/docs/deploying-builds/deploy-firebase

我的意思是,您还能如何保留版本历史记录?如果你真的想上传一些东西,只需上传,解压缩,也提交到 git。 HTML 文件非常适合这种情况。 总的想法是拥有一个连续的版本历史,它会在变化时自动部署。

【讨论】:

    【解决方案2】:
    1. Firebase 身份验证用户没有足够的权限部署到主机。用户需要是 Firebase 项目的合作者,这意味着他们需要拥有 Google 帐户。

    2. 我建议查看我的 Gist,它展示了如何使用 deploy a single files,它所做的事情与您想要完成的事情非常相似。它在this code fragment 中获取现有文件的列表(及其哈希值)。

    【讨论】:

    • 嗯,那么有没有一种方法可以通过 firebase 让用户上传包含静态 Web 文件的 zip 文件,然后我们可以解压缩并放置在可以公开访问的地方?我尝试在 firebase 存储中手动执行此操作,但 html 文件无法识别其他资产的路径。
    • 您可以创建一个云函数,当他们将文件上传到云存储时触发。
    猜你喜欢
    • 2020-04-07
    • 2016-10-08
    • 2018-02-24
    • 2020-09-19
    • 2020-08-03
    • 2016-12-28
    • 2021-06-30
    • 2021-10-13
    • 2020-06-17
    相关资源
    最近更新 更多