Firebase 托管:需要设置

Posted

技术标签:

【中文标题】Firebase 托管:需要设置【英文标题】:Firebase hosting: Needs Setup 【发布时间】:2018-01-08 07:17:16 【问题描述】:

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

Firebase 托管网址: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 托管将不会在第一步之后继续设置。除此之外:这里没有足够的信息可供 Stack Overflow 上的任何人提供帮助。如果您需要个性化帮助,请reach out to Firebase support。 谢谢。我已更正 TXT 记录。挖 -t txt +noall +answer inv.agsft.com inv.agsft.com。 299 IN TXT "google-site-verification=8uObmfAMZrc29piBvbJnRmyKNhONB3Iom6-qMOT9gHk" 我正在尝试高级设置选项,需要等待 24 小时,我会更新详细信息。 似乎还有其他问题,我已联系 firebase 支持,但尚未收到解决方案。解决后我会用答案更新帖子。 Pari 有什么更新? 【参考方案1】:

我遇到了同样的问题,我可以通过在两条 A 记录上将 cloudflare 上的 DNS 状态从 DNS and HTTP Proxy (CDN) 切换到 DNS 来解决它

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

【讨论】:

这件事发生在我身上,您究竟是如何使用 Cloudflare 的当前站点做到这一点的? @MurraySmith 您只需单击每个 DNS 记录旁边行最右侧的云。因此,请确保您的 Firebase URL 的两条 A 记录已切换,也就是它会显示灰云。 那么,这会禁用 cloudflare,我将如何使用它? 我刚试了,这仍然有效!您只需对两个 firebase1._domainkeyfirebase2._domainkey CNAME 条目执行此操作。用于验证您的域所有权。当然,不要为您的 www A 记录或类似的东西这样做。 在 Firebase 托管之上是否需要 Cloudflare,这是有争议的【参考方案2】:

正确的解决方案(即不为站点禁用 Cloudflare)是为您的域/子域使用完整 SSL。

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

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

有同样的问题,这解决了重定向问题。但是,Firebase 仍会将域报告为“需要设置”,因为我没有解决方案,但它不会影响托管的功能。

【讨论】:

【参考方案3】:

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

【讨论】:

这里重要的变化是使用“@”而不是“mysite.com” 使用 @ 对我不起作用,因为 Cloudflare 会自动将其更改为 mysyte.com 是的,这也是 GoDaddy 的解决方案!【参考方案4】:

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

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

如果您“保持云橙色”,它不会对您的 Firebase 托管造成任何问题。

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

    为确保您拥有端到端加密(使用 firebase ssl 和 cloudflare ssl),请确保您的 cloudflare 加密选项设置为“完整”:

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

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

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

p.s2:关于 cloudflare 和 firebase 的主要问题是 firebase ssl 可能需要几个小时才能开始工作,并且您会不断看到诸如“您的连接不是私有的”之类的消息。这不是因为 cloudflare 弄乱了我们的代理,而是因为 firebase ssl 仍未完全传播。

我希望它可以帮助其他人:)

【讨论】:

【参考方案5】:

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

将 cloudflare 上的 DNS 状态从 DNS 和 HTTP 代理 (CDN) 切换为仅在两条 A 记录上的 DNS。

但是当我开始工作时:

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

之后自动添加的状态为已连接。

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

【讨论】:

【参考方案6】:

当我运行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 记录,要么 '尚未传播。

【讨论】:

我刚刚运行了 dig 命令并得到了以下结果。挖 -t txt +noall +answer inv.agsft.com inv.agsft.com。 299 IN TXT "google-site-verification=8uObmfAMZrc29piBvbJnRmyKNhONB3Iom6-qMOT9gHk" 好。但是您遇到上面报告的问题的原因是因为缺少 TXT 记录。解决该问题后,Firebase 托管应该能够验证您是否拥有该域(可能需要长达 24 小时),然后过渡到下一阶段(添加 A 记录 iirc)。 我添加了一些关于我现在看到的信息。但是由于您还提交了支持案例,我建议您在那里更新,因为他们可以直接在支持系统中看到状态。【参考方案7】:

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

【讨论】:

【参考方案8】:

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

类型:A

姓名:@

VALUE:您的 ip_1

类型:A

姓名:@

VALUE:您的 ip_2

【讨论】:

我这样做了,但仍然显示“需要设置”。知道为什么吗? *已解决:我必须从 GoDaddy DNS 管理中删除旧的“A”。 @SheikhWa​​habMahmood 2 域可以添加 firebase 托管吗?不是子域,example1.com example2.com 及其重定向【参考方案9】:

2020 年 6 月

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

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

第 2 步:从 firebase 中删除域

第 3 步:使用 Quick Steup 重新添加

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

【讨论】:

您这样做是否删除了您网站的域和重定向域 (http->https)?我基本上有四个域。 另外,当重新添加域时,您是切换 cloudflare 上的橙色云代理设置还是让它变灰?【参考方案10】:

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

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

2) 将“设置模式”从“快速设置”更改为“高级”,然后按照 3 个步骤进行操作

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

这不是一个快速的过程,但它应该在您完成第 2c 步后大约 5 分钟开始工作。

【讨论】:

【参考方案11】:

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

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

然后它将按预期工作。

【讨论】:

以上是关于Firebase 托管:需要设置的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 托管设置问题

如何使用 Firebase 托管来托管图像?

将 .well-known/assetlinks.json 上传到 Mac 上的 Firebase 托管

Firebase 托管:我们无法验证您的域 example.com。请检查您的设置并重试[关闭]

Firebase:使用预留托管 URL 时未创建 Firebase 应用“[DEFAULT]”

如何为不同的 Firebase 托管项目设置域及其子域