问题标签 [firebase-hosting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2531 浏览

firebase - Firebase 托管出现意外的尾部斜杠行为

我在 Firebase Hosting 上看到带有斜杠的意外行为(至少在我看来)。我希望 Firebase 提供带有斜杠的 URL(托管目录中存在的实际文件除外)。为此,我trailingSlashtruefirebase.json 中设置。

这导致:

预期的行为将是:

在实际文件 URL 中添加尾部斜杠会使浏览器/服务器认为script.js是目录而不是文件,并导致 404。将 index.html 添加到根目录并不优雅。

期望cleanUrls执行我设置的技巧cleanUrlstrue并且trailingSlash该站点立即进入无休止的重定向循环并且无法加载。如何阻止 Firebase 在根目录中添加“index.html”并为实际的 js 或图像资产添加斜杠?

编辑:

按照弗兰克的要求,这是我正在使用的 firebase.json:

PS:我已经尝试设置trailingSlashcleanUrls设置true,也尝试true/false单独设置这些。

0 投票
1 回答
1973 浏览

firebase - Firebase 中具有 glob 模式的动态重写规则

我有一个指向“项目详细信息”页面的 URL 结构,如下所示:(john/project/eRdKn6其中“john”是用户名,“eRdKn6”是项目 ID)。我希望将其重写到文件project.html中,在其中解析 document.location 并加载适当的数据。所以用户名和项目ID应该是动态的。

我的规则firebase.json如下所示:

但是,当我尝试加载 Firebase 404 时http://example.com/john/project/eRdKn6

我试图只使最后一部分动态化,作为测试(例如{"source": "john/project/*", "destination": "/project.html"},但我也得到了 404.

project.html是在文件public夹中。

这是我的完整firebase.json文件:

0 投票
1 回答
1496 浏览

angularjs - 如何将新应用托管到 Firebase?

这已经写满了新手。我已将 Angularjs 部署到 firebase,现在我想部署另一个。我是否从我的仪表板开始并创建新应用程序,因为我是否首先在 Index, html 文件所在的目录上执行 firebase Init?文档似乎表明我们从 Firebase Init 命令开始。如果是这样,使用的仪表板上的 Create New 应用程序是什么?

0 投票
2 回答
1699 浏览

angularjs - 如何获取我的 Firebase 应用程序流量的网络分析?

我是否需要将其构建到应用程序中,或者 firebase 是否会收集有关有多少用户打开应用程序和相关链接的统计信息?谢谢

0 投票
1 回答
941 浏览

firebase - 使用 firebase 进行持久存储

我正在做一个 IOT 项目,我们正在评估使用 firebase。我们已经实现了一个原型,可以很好地处理实时数据。由于数据对客户至关重要,他们希望能够在以后检索数据。我在firebase网站上找不到太多关于持久存储的信息,你们中的任何人都知道我们是否可以单独使用firebase,或者我们是否需要将它转移给你一个基于云的存储,比如谷歌云存储,如果是的话firebase 保存数据的可靠时间。假设您选择了正确的计划。

谢谢卡马尔

0 投票
4 回答
4013 浏览

reactjs - Firebase 托管单页应用程序上的深度路由问题

(下面更新了更多信息)

我们有一个基于 React 的单页 Web 应用程序,它存在于 Firebase 托管上。到目前为止,我们一直在使用基于散列的路由(例如mysite.com/#/path/to/content)。我们引入了 React Router,它允许我们拥有更漂亮的 URL(例如mysite.com/path/to/content),但是现在当我们直接导航到深层路由时应用程序不会加载。详情如下:

使用 React Router 需要我们在 Firebase 托管中使用 URL 重写。方向非常简单——看起来你需要做的就是:

...在firebase.json文件中。其实我们完整的firebase.json文件如下:

那里没什么太复杂的(firebase deploy -f如果您想知道为什么firebase参数为空,我们正在构建脚本中执行此操作)。链接到的rules.json文件更简单:

当我通过转到基本 URL 来加载应用程序并开始四处导航时,一切都很好。如果我直接进入一层深的路线(例如mysite.com/path),那也可以。

然而

mysite.com/path/如果我直接进入更深层次的路线,或者甚至是带有尾部斜杠(例如或)的顶级路线mysite.com/path/to/content,则应用程序不会加载。

具体来说,发生的是index.html页面加载,然后浏览器去加载我们在 中引用的 webpack 创建的 bundle.js 文件index.html,但是 Firebase Hosting 为该 JS 文件返回的是index.html 文件的内容。那么,可以预见的是,我们在浏览器控制台中看到的是这个错误:

Uncaught SyntaxError: Unexpected token <

...在“捆绑文件”的第 1 行。如果我在 Chrome 的开发工具中查看包文件的内容,包文件的第 1 行实际上是这样的:

<!doctype html>

...然后是index.html文件中的其余 HTML。

似乎发生了什么是 Firebase URL 重写规则说“哦,你正在尝试引用一个 JS 文件——我知道我应该返回所有内容的index.html内容,所以你去吧”。但情况并非一直如此,否则该网站在任何情况下都无法正常工作。那么,如果我从站点根目录开始,为什么它会起作用,但如果我将深层 URL 粘贴到应用程序,它会中断?我的想法为零。

如果有帮助,这是我的index.html文件引用捆绑文件的方式:

所以这似乎是 Firebase 托管的一个问题,但我也可以看到,也许我在某种程度上不理解 React Router,所以我以某种方式把客户端代码搞砸了,以至于它强迫服务器返回错误的东西。

我希望这是我们缺少的一些愚蠢的配置。任何帮助表示赞赏!

谢谢!

更新:我剥离了我们的应用程序,使它只返回“hello,world”,它绕过了所有基于 React 的东西,包括 React Router,问题仍然存在,所以我不再认为这与 React 有任何关系-路由器,尽管我认为这与 React 有关的可能性仍然很小。

0 投票
2 回答
3984 浏览

json - 公钥/目录上的 Firebase 部署错误

我正在使用 Firebase 构建一个 IOS 应用程序。当我尝试部署 “错误:指定的公共目录不存在,无法部署托管”时出现错误 我一直在关注这里的托管指南 Guide Link但是作为新手,我不明白我应该输入什么firebase.json

所以我的代码在firebase.json

我不确定我应该在"public"财产中放什么。我认为这就是我收到错误的原因。我不明白这里的公共目录是什么意思。

0 投票
1 回答
608 浏览

javascript - NodeJS 作为 Google 聚合物 1.0 的后端

我正在使用聚合物入门工具包开发网站,没有任何 Javascript 和 HTML 知识,UI 一切都很好。我已经完成了网站的 UI 部分,我还参考他们的指南在 firebase 中部署了网站。我使用 firebase存储我网站的表单数据。现在我想使用nodejs从firebase导入数据并执行一些计算和更新firebase字段,因为在nodejs中很容易使用Twilio等几个API。如果我这样做了,我该如何托管它作为一个单一的网站。我不知道我该怎么办!

0 投票
2 回答
3357 浏览

firebase - Firebase 部署返回未知错误

我正在尝试将我的网站部署到我之前做过的 Firebase,但现在它说“错误:发生未知错误。请联系支持人员。” firebase-debug.log 文件的内容如下:

0 投票
1 回答
1201 浏览

firebase - 获取错误提供的 CLI 版本无效。- 运行 firebase deploy 时请至少更新到 v2.0.0

我正在运行命令 firebase deploy 并看到以下错误:

提供的 CLI 版本无效。- 请通过运行 npm update -g firebase-tools 至少更新到 v2.0.0

运行命令 firebase -v 我看到我有以下版本信息:

Firebase Command Line Tools Version 1.2.0 https://www.firebase.com

现在,运行命令 npm update -g firebase-tools 根据我的判断确实可以做到。

我试图通过以下命令删除并重新安装 firebase-tools:

当我运行 firebase -v 我继续看到版本 1.2.0 并且我的 firebase deploy 继续不起作用。如何将 firebase-tools 升级到版本 2?

有关背景信息,服务器上的节点版本是 v4.3.1,操作系统是 Ubuntu 14.04.4 LTS。

提前感谢您的任何帮助。