繁体   English   中英

何时/如何更新 Firebase Web SDK 版本号?

[英]When/how to update Firebase web SDK version number?

当您初始化 Firebase 托管时,它会在生成的 index.html 文件的标头中包含一条注释:

<!-- update the version number as needed -->
<script defer src="/__/firebase/7.5.2/firebase-app.js"></script>

我的问题与“根据需要”有关; 我看了文档,没有看到解释。

可能这意味着它应该是显而易见的——但是当您是初学者时,大多数事情都不是!

所以,为了让我的问题更具体:

  • 什么时候更新版本可能会导致 Firebase 网络应用程序中断?
  • 相关地,如果一个应用程序正在运行,并且很长时间没有更新(许多版本/年),该应用程序是否仍能正常运行? 或者如果不保持最新状态它会坏掉吗?
  • “根据需要”是否意味着“根据需要[访问新功能]”?
  • 最后,是否暗示这些更改应该手动实施——通过定期查找最新的 Firebase 版本,并在 index.html 中输入新版本号——或者是否有某种自动“保持最新”的工作流程/隐含的工具/约定?

我意识到上面有很多子问题,但它们都是为了澄清“根据需要更新”,所以我认为它们属于同一个地方。

我希望任何答案都能帮助其他初学者了解何时适合更新应用程序所依赖的服务这一更大的问题。 谢谢。

Firebase 遵循所谓的语义版本控制 (SemVer) 规则。

来自semver.org

给定版本号 MAJOR.MINOR.PATCH,递增:

进行不兼容的 API 更改时的主要版本,

以向后兼容的方式添加功能时的 MINOR 版本,以及

进行向后兼容的错误修复时的 PATCH 版本。

这意味着 API 保证在您的情况下在次要版本 (7.x) 内保持兼容,但可能会在主要版本 (8.0) 中进行重大更改。 这意味着次要版本 (7.x) 用于修复问题,有时还会添加不破坏现有行为的次要功能。

有了这些知识,让我们看看是否可以回答您的问题:

什么时候更新版本可能会导致 Firebase 网络应用程序中断?

在同一主要版本(7.x,例如 7.5.2 -> 7.5.3,或 7.5.2 -> 7.6.0)内更新应该不会破坏您的应用程序。 有一些例外,例如当您的代码依赖于已修复的错误行为时,或者当发布中存在错误时。 后者通常会由 Firebase 团队尽快修复,而您通常希望回滚到以前的版本并在前一种情况下更新您的代码。

相关地,如果一个应用程序正在运行,并且很长时间没有更新(许多版本/年),该应用程序是否仍能正常运行? 或者如果不保持最新状态它会坏掉吗?

版本发布后,将保持不变。 因此,您的应用程序将保持您创建时的状态。

“根据需要”是否意味着“根据需要[访问新功能]”?

升级的两个主要原因:

  1. 访问新功能。

    这是升级的最明显原因,因为它允许您将新功能从 Firebase 添加到您的应用程序。 最常见的是这个

  2. 访问错误修复。

    在您使用的库版本中可能会发现错误,其中一些错误可能是安全漏洞。 在这种情况下,不更新到更新的版本意味着您的应用程序中存在已知的安全漏洞。 这里要意识到的关键是已知部分:大多数黑客搜索具有已知漏洞的应用程序,而不是试图寻找新的漏洞。

最后,是否暗示这些更改应该手动实施——通过定期查找最新的 Firebase 版本,并在 index.html 中输入新版本号——或者是否有某种自动“保持最新”的工作流程/隐含的工具/约定?

如果您使用工具来构建/打包您的网站,那通常有一种方法可以自动引入新版本。

许多开发人员将此类工具配置为在每次构建时自动引入新补丁 (7.5.x),而有些甚至引入新的次要版本 (7.xx)。 但也有一种观点倾向于硬编码确切的版本号,并且只通过定期检查手动升级。

无论哪种方式,都需要进行新构建才能升级,即使在这种情况下也是如此。 这是一件好事™️,因为您最不想看到的是当 Firebase 意外发布带有错误的新版本时您的应用程序在生产中中断(这种情况很少见,但确实发生过)。 通过在构建过程中只包含一个新版本,您可以降低这种风险,尤其是当您在构建过程中运行应用程序功能的自动化测试时。

这里没有正确或错误的答案,因为任何一个都可以正常工作。 这真的取决于你自己的喜好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM