Javascript 如何在Firebase主机中处理动态URL路由

Javascript 如何在Firebase主机中处理动态URL路由,javascript,firebase,frontend,firebase-hosting,Javascript,Firebase,Frontend,Firebase Hosting,假设我在Firebase的公共文件夹中有一个index.html和一个salon.html 现在,对于像xyz.com/salon/43这样的url,我想加载salon.html,在javascript中,我想从实时数据库获取salon 43 现在我可以使用类似于xyz.com/salon?id=43的URL。我想知道在Firebase托管中是否可以实现前者,如果可以,如何实现。您正在寻找Firebase托管重写。从: 如果要为多个URL显示相同的内容,请使用重写。重写对于模式匹配特别有用,因为

假设我在Firebase的公共文件夹中有一个
index.html
和一个
salon.html

现在,对于像
xyz.com/salon/43
这样的url,我想加载
salon.html
,在javascript中,我想从实时数据库获取salon 43


现在我可以使用类似于
xyz.com/salon?id=43
的URL。我想知道在Firebase托管中是否可以实现前者,如果可以,如何实现。

您正在寻找Firebase托管重写。从:

如果要为多个URL显示相同的内容,请使用重写。重写对于模式匹配特别有用,因为您可以接受与模式匹配的任何URL,并让客户端代码决定显示什么。重写规则可用于支持使用HTML5 pushState进行导航的应用程序。当浏览器尝试打开指定的源URL时,将在目标URL处为其提供文件内容

URL重写可以通过在
firebase.json
文件的hosting中定义
rewrites
部分来指定:

"hosting": {
  // Add the "rewrites" section within "hosting"
  "rewrites": [ {
    "source": "**",
    "destination": "/index.html"
  } ]
}

非常感谢。这太完美了。我已经看到了,但是我没有意识到URL会像重定向一样被维护。在问问题之前应该试一试。不用担心。我几乎回答重定向,然后意识到它不会维持状态。你也可以使用动态托管:谢谢!我不知道云函数可以这样使用<代码>…您可以有一个类似/blog/的URL。此URL模式可以指向一个函数,该函数动态使用URL blog post ID参数从Firebase实时数据库中动态检索内容。