【问题标题】:Firebase Dynamic Links — root urlFirebase 动态链接 — 根 URL
【发布时间】:2020-03-18 14:13:20
【问题描述】:

我正在使用Firebase Dynamic Links 将用户重定向到移动应用。

https://example.com/mypath 之类的链接有效,但我也想使用根 url,即https://example.com

目前显示错误:

无效的动态链接

请求的 URL (https://example.com/) 必须是可解析的并且 完成动态链接。

如果您是此应用的开发者,请确保您的动态链接 域已正确配置并且此 URL 的路径组件 有效。

当我尝试建立一个不带前缀的链接时,它显示错误:

短网址是必填项

有没有办法设置root url?

【问题讨论】:

  • 使用根域的目的是什么。假设如果你在你的移动浏览器中点击 URL www.example.com 它应该打开你的网站而不是你的移动应用程序。我认为这是正确的行为。
  • @Sandeep 而 example.com 打开网站,我想让 app.example.com 打开移动应用程序。这就是为什么我需要根域
  • app.example.com 也代表一个博客的 URL,其中 example.com 是域。因此,您不能将其用作 firebase 中的动态链接。预期的网址是 app.example.com/app
  • @Sandeep 你说的“博客”是什么意思?我的网站没有博客。 url app.example.com 已经由 firebase 动态链接处理。但是firebase显示我在问题中发布的错误
  • @Pavel 我想知道你是否设法解决了这个问题,因为我面临同样的问题????

标签: firebase firebase-dynamic-links


【解决方案1】:

另一种从根动态链接域设置重定向的方法(不提供带有 javascript 重定向的页面)是在您的 firebase.json 文件中添加这样的重定向规则:

"redirects": [ {
      "source": "/",
      "destination": "https://example.com/page-for-root-to-redirect-to",
      "type": 301
    } ]

此规则将与您的动态链接重写规则一起存在,因此对于除根以外的所有路径都被视为动态链接的简单设置,您的 firebase.json 可能如下所示:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [ {
      "source": "/**",
      "dynamicLinks": true
    } ],
    "redirects": [ {
      "source": "/",
      "destination": "https://example.com/page-for-root-to-redirect-to",
      "type": 301
    } ]
  }
}

要访问和修改您的 firebase.json 文件,如果您尚未使用 Firebase CLI 设置 Firebase 托管:https://firebase.google.com/docs/hosting

本页详细介绍了 firebase.json 文件以及如何使用重写和重定向规则:https://firebase.google.com/docs/hosting/full-config

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我想做的是将根域转发到不同的 URL。我所做的是在该域上设置 firebase 托管。然后在 index.html 文件上,我写了一个 javascript 重定向。

    <script>
    window.location = "https://www.example.com";
    </script>
    

    如果您需要更多帮助,请随时回复,我会为您提供帮助。

    【讨论】:

      【解决方案3】:

      如果你也碰巧使用 Cloudflare,我对这个问题的解决方案是向 Firebase 动态链接添加一个子域,并使用页面规则使主 url 重定向到子域。

      这样,您可以将其设置为像这样工作:

      • example.com/url -redirect_to-> subdomain.example.com/url(并加载动态链接)
      • example.com/ -redirect_to-> 主站点或任何你想要的

      【讨论】:

        【解决方案4】:

        作为 Android 用户,我遇到了同样的问题,我确实设法最终解决了这个问题,以防万一其他人遇到与我相同的问题,我把我所做的:

        因此,如果您遇到同样的问题,即在浏览器中输入以下内容并且您没有看到任何数据,则这意味着您的 Firebase 项目未完全使用 sha256 密钥注册。

         https://YOURLINK.page.link/.well-known/assetlinks.json 
        

        在我的情况下,我必须向我的 firebase 项目添加一个新的 sha256 密钥,显然,动态链接才能正常工作 Firebase 项目必须使用 sha256 签名。

        这个官方的 firebase 视频应该会让你继续前进:https://youtu.be/zra2DCd0DnY

        【讨论】:

        • 这仅适用于 Android 应用,对吗?我在 iOS 上遇到错误,但 Firebase 设置没有将 SHA 添加到 iOS 应用程序的位置,只有 Android (您链接的视频中也是这种情况)。
        • @Nelu 很抱歉延迟回复,不知道你需要用 iOS tbh 做什么,但我认为也必须有官方的 iOS 视频。很抱歉没有在这里提供更多帮助
        【解决方案5】:

        请求的 URL 必须是可解析的 URI,但可能不完整,不能成为 DynamicLink。

        如果您是此应用的开发者,请确保您的动态链接域配置正确且此 URL 的路径组件有效。

        【讨论】:

          猜你喜欢
          • 2020-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-03
          • 2018-12-25
          • 2020-08-18
          相关资源
          最近更新 更多