Spl*_*tar 11 firebase-hosting firebase-dynamic-links
在使用page.link URL前缀(当时唯一的选项)之前,我已经在其他项目中创建了Firebase动态链接。但是,今天为新项目启用动态链接时,不再显示该选项。看起来自定义域的文档今天已更新。不幸的是,尽管他们提供了一些有用的示例,但并未解释如何以我能理解的方式解决我的问题。
因此,此消息似乎表明我需要“将链接放在子路径下”。在我看来,/link在此处添加路径前缀应该可以实现?但是进行更改后,我得到了相同的错误消息。
您似乎已经在此托管站点上提供了内容。将链接放在子路径下,以避免与现有内容冲突。
为了尝试解决此问题,我去了我的项目并添加了建议的Hosting配置并进行了部署。
firebase.json:
{
"hosting": {
"public": "dist",
"ignore": [
"**/.*"
],
"appAssociation": "AUTO",
"rewrites": [
{
"source": "/link/**",
"dynamicLinks": true
},
{
"source": "**",
"destination": "/index.html"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
即使等待了一个小时,我仍然收到相同的错误,而且我不知道该怎么办。
请注意,/index.html由于我在www.devintent.com上托管了一个Angular单页应用程序,因此我对此进行了重写。
无论我做什么,我总是收到此错误,并且Continue按钮保持禁用状态。我尝试使用裸域devintent.com而不是www.devintent.com,但这无济于事。我尝试使用links.devintent.com,但遇到了相同的错误。
如果我手动disabled从Continue按钮中删除,则会收到以下错误消息:
这链接到用于为动态链接手动配置托管的文档,该文档已经完成了一些步骤。单击Check Again按钮只会使我回到上面第一张图像中的相同错误。
不使用自定义域的解决方法
我现在很高兴使用page.link链接,我只需要创建一个动态链接并不受阻地执行此任务,但是我也无法在控制台中找出任何允许我执行此操作的方法。
对此进行更新:我发现需要将子域添加到page.linkURL。工具提示最后会显示“或Google提供的免费域(例如,yourapp.page.link)”。我本来希望它不那么突出(因为我已经很长时间没有找到它了)。现在可以将使用devintent.page.link对我有效。
但是,我不确定自定义域配置为何不起作用,如果具有现有托管配置和自定义域的项目存在此类复杂性,为什么它会成为默认设置?
Eri*_*dán 31
我遇到了同样的问题并得到了同样的错误。问题是我将所有路由重定向到index.html. 解决方案是index.html通过排除来限制路由。
"rewrites": [
{
"source": "/link/**",
"dynamicLinks": true
},
{
"source": "!/link/**",
"destination": "/index.html"
}
]
Run Code Online (Sandbox Code Playgroud)
将新配置部署到 Firebase 托管后,我可以根据需要使用 mydomain.com/link。
sha*_*256 24
我在根(顶点)域上遇到了类似的问题。基本上,如果前缀(在我的例子中是顶点域)是一个提供 200 状态响应的 URL,它不会被接受。在我的情况下,index.html文件public夹中有一个文件。我将它重命名为其他东西并且它起作用了。
这是我的firebase.json:
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"appAssociation": "AUTO",
"rewrites": [ { "source": "/**", "dynamicLinks": true } ]
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
关于使自定义域正常工作,您所做的一切看起来都是正确的。我想知道您是否正在使用最新版本的firebase-tools(CLI)。版本6.5.0中添加了对动态链接的自定义域支持。
好消息是,page.link支持仍然存在,但在新的UI流程中并不那么明显。获取page.link域的方法是开始键入所需的子域,并且应该在UI中弹出一个建议。我提供了一个屏幕截图,以显示其工作方式。
希望这可以帮助,
杰夫
对于我们来说,问题是我们正在使用默认的 Firebase 托管站点在所有路由(“/**”)上为我们的网络应用程序提供服务。从不同的域提供我们的网络应用程序,动态链接对我们来说应该是这样,因为链接不应该干扰网络应用程序。
为了提供来自与我们的网络应用程序不同的域的链接,我创建了一个仅用于链接的新网站,并将我们的自定义域附加到该网站。现在我们有两个 Firebase 托管站点。第一个默认用于我们的网络应用程序,第二个默认用于 Firebase 动态链接。
设置动态链接后,将自定义域附加到第二个 Firebase 托管站点,效果完美。请参阅屏幕截图了解更多详细信息:

EDIT1:网络应用程序的 firebase.json 根据 @cocacrave 的要求:
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"function": "nuxtApp"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2720 次 |
| 最近记录: |