Firebase 托管:需要为 Cloudflare DNS 设置

Firebase Hosting: Needs Setup For Cloudflare DNS

我正在尝试为我的 Firebase 应用设置自定义域。

Firebase 托管 url:https://inventory-app-726af.firebaseapp.com/

自定义域:inv.agsft.com

作为设置自定义域的一部分,我已按照所有说明进行操作,但在我单击“完成”按钮时进行验证步骤后,状态将始终为“需要设置”。

我正在通过 cloudflare (https://www.cloudflare.com/) 管理 DNS,我正在使用快速设置选项。

有解决问题的建议吗?

当我运行dig -t txt +noall +answer inv.agsft.com时没有显示TXT记录。由于这些是验证您对域的所有权所必需的,因此 Firebase 托管不会在第一步之后继续设置。

更新:由于下一步需要您将 A 记录映射到 Firebase 托管的 IP 地址,因此我也 运行 相关 dig

$ dig -t a +noall +answer inv.agsft.com
inv.agsft.com.      299 IN  A   104.18.56.240
inv.agsft.com.      299 IN  A   104.18.57.240

这些不是我期望的 Firebase 托管地址,因此看起来 要么 您没有正确输入 A 记录,他们还没有传播。

我有同样的问题,我能够通过将 cloudflare 上的 DNS 状态从 DNS and HTTP Proxy (CDN) 切换到两个 A 记录上的 DNS 来解决它

它立即开始工作。希望对您有所帮助!

正确的解决方案,即不为网站禁用 Cloudflare,是为您的 domain/subdomain 使用 Full SSL。

您可以为所有域条目选择完全 SSL,或为特定子域设置页面规则,在您的情况下,使用 "inv.agsft.com/*"

来源:https://community.cloudflare.com/t/flexible-ssl-redirect-loop-with-google-firebase/2063/3, which in turn points to https://support.cloudflare.com/hc/en-us/articles/115000219871-Why-does-Flexible-SSL-cause-a-redirect-loop-

有同样的问题,这解决了重定向问题。然而,Firebase 仍会将域报告为 "Needs setup",对此我没有解决方案,但这不会影响托管的功能。

当我像下面这样更改我的设置时,它又开始工作了。 重定向循环已修复:

我遇到了同样的问题。这是我修复它的方法:

1) 单击有问题的域上的“查看”按钮(在“需要设置”旁边的“托管”部分)。

2) 将 'Setup mode' 从快速设置更改为高级,然后按照 3 个步骤进行操作

  • 2a) 打开您的域提供商的设置(我正在使用 Google 域)并添加它给您的 TXT 记录。
  • 2b) 等待验证大约4-12小时
  • 2c) 将提供的 A 记录添加到域名提供商的设置中

这不是一个快速的过程,但它应该会在您完成步骤 2c 后大约 5 分钟内起作用。

在我的例子中,我做了和 Brennen 一样的事情:

  • 将 cloudflare 上的 DNS 状态从 DNS 和 HTTP 代理 (CDN) 切换到两个 A 记录上的 DNS。

但是当我开始工作时:

  • 从 firebase 中删除域。 (点击:点select删除域名)
  • 刷新 Firebase 网站
  • 在快速设置中再次添加。我已经在 Cloudflare 中添加了 A 记录,所以我没有再次添加。

之后自动添加的状态是connected。

记住:在测试之前,清理浏览器缓存。

为避免在使用 firebase 托管和 cloudflare 时出现任何类型的 ssl 问题,您必须检查以下几点:

  1. 不需要 将 cloudflare 上的 DNS 状态从 DNS 和 HTTP 代理 (CDN) 切换到两个 A 记录上的 DNS 除非您不想要 cloudflare ssl 证书并且只想使用 firebase ssl 证书(请仔细查看,因为您 将失去 cloudflare 的保护提供给您的站点以防您决定仅使用 clouflare DNS)

如果您 "keep the cloud orange" 它不会对您的 firebase 托管造成任何问题。

  1. 按照 firebase 托管提供的说明将 firebase IP 添加到 cloudflare,并从您正在设置的 domain/subdomain 中删除任何其他 A 记录

  2. 为确保您拥有端到端加密(使用 firebase ssl 和 cloudflare ssl),请确保您的 cloudflare 加密选项设置为 "Full":

  1. 如果您希望根域接收所有流量,请使用喜欢的页面规则:

  1. 在您的 firebase 托管设置中,执行相同的操作:

p.s:看消息“需要设置”仍然存在,但应用 运行 没有任何问题。

p.s2:关于 cloudflare 和 firebase 的主要问题是 firebase ssl 可能需要几个小时才能开始工作,并且您不断看到 "your connection is not private" 之类的消息。发生这种情况并不是因为 cloudflare 弄乱了我们的代理,而是因为 firebase ssl 仍未完全传播。

希望对其他人有所帮助:)

对于使用 Namecheap 的人来说,此配置对我有用。

2020 年 6 月

只是想分享对我来说成功的事情。这是 Brennen 和 Lisbel 的综合回答。

第 1 步:关闭您的 DNS 状态以获得灰色云(如之前的答案所示)

第 2 步:从 firebase 中删除域

第 3 步:使用 Quick Steup 将其添加回来

完成这些步骤后应该可以连接了!

切换 DNS 模式对我不起作用。所以我尝试了以下方法,它对我有用。

  1. 添加指向{firebase-project}.firebaseapp.com{firebase-project}.web.appCNAME记录,您可以添加A记录并尝试。
  2. 添加 TXT 记录为 firebase 问你
  3. 从 firebase 验证(这将显示为需要设置,尽管它有效但它并没有消失)
  4. 如果新 domain/subdomain 不起作用,请检查您的浏览器开发人员工具网络选项卡。如果发生很多 301,请转到 cloudflare 页面规则。添加 newdomain.com/*subdomain.newdomain.com/* 然后添加设置 select SSL 并将其设置为完整,如下所示。

然后它将按预期工作。

对于 GoDaddy,添加以下内容为我解决了问题:

类型:A

姓名:@

VALUE:你的ip_1

类型:A

姓名:@

VALUE:你的ip_2

自 2022 年 5 月 11 日起工作,无需切换 DNS 和 HTTP 代理 (CDN)。

步骤:

  1. 转到 Cloudflare 仪表板
  2. Select SSL/TLS.
  3. Select概览
  4. Select Full SSL/TLS 加密模式选项.
  5. 之后,刷新您之前无法访问的网站。
  6. 现在网站可以访问成功了