Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建mydomain.com/someID类型的URL,其中someID来自firestore中的字段(doc)?_Javascript_Firebase_Google Cloud Firestore_Routes - Fatal编程技术网

Javascript 如何创建mydomain.com/someID类型的URL,其中someID来自firestore中的字段(doc)?

Javascript 如何创建mydomain.com/someID类型的URL,其中someID来自firestore中的字段(doc)?,javascript,firebase,google-cloud-firestore,routes,Javascript,Firebase,Google Cloud Firestore,Routes,我正在firebase的一个web项目中使用javascript(纯)。 我习惯于按规范获取URL参数,如:mydomain.com/?p=ID 但是我想让URL变得友好,例如:mydomain.com/nameOfMyUser 这样,我想将斜杠后面的内容作为一个参数,并在屏幕上显示与之相关的内容 用户名将来自firestore,也就是说,我将在内部检查唯一性,但它将由用户自己创建 如何将URL后缀(nameOfMyUser)当作参数使用,避免404错误 这可能吗?有人能帮我吗 谢谢。我想找到了

我正在firebase的一个web项目中使用javascript(纯)。 我习惯于按规范获取URL参数,如:mydomain.com/?p=ID 但是我想让URL变得友好,例如:mydomain.com/nameOfMyUser

这样,我想将斜杠后面的内容作为一个参数,并在屏幕上显示与之相关的内容

用户名将来自firestore,也就是说,我将在内部检查唯一性,但它将由用户自己创建

如何将URL后缀(nameOfMyUser)当作参数使用,避免404错误

这可能吗?有人能帮我吗


谢谢。

我想找到了解决办法:

在firebase.json中,我可以:

"hosting": {
// ...

// Serves index.html for requests to files or directories that do not exist
"rewrites": [ {
  "source": "**",
  "destination": "/index.html"
  } ]
}

因此,在index.html中,使用location.href和firestore函数,我可以操纵路径以显示在URL中传递的指定用户的内容。

您是否使用Vue.js、Angular等框架。。??或者说“纯javascript”是指你只使用HTML和javascript?在第二种情况下,我想您可以通过JavaScript.Hi@RenaudTarnec生成一些HTML内容(即修改DOM)。谢谢你对我的问题感兴趣。这是一个简单的应用程序。我没有使用框架。是的,我打算通过操纵HTMLDOM来生成内容。但关键是服务器将斜杠后面的内容解释为主机上的文件夹,而不是参数(出现错误404)。我希望将其视为自定义路由,这使得服务器将URL的这一部分解释为URL的参数,而不是服务器上的文件夹。对不起,我不知道我是否清楚。您应该在JavaScript中获取url(),解析它并基于最后一个斜杠后的值,触发对Firestore的查询,然后使用查询结果修改DOM。请注意,通过使用框架,它将更容易维护。例如,学习如何使用Vue.js做到这一点并不困难。对于路由部分,这取决于您的托管解决方案以及您可以配置它的深度。再次感谢,@RenaudTarnec。我将学习Vue.js并了解它为我提供的路由解决方案。我很清楚,我应该使用location.href(特别是如果我在没有框架的情况下冒险这么做的话)。但问题是:如何在服务器将斜杠后面的部分识别为路径名并向我返回没有这样的页面之前拦截请求(404)。注:我将在firebase上主持。我觉得我需要做和DNS一样的行为,就像那样。。。LOL.twitter.com/myusername如何代替twitter.com/?uname=something很高兴看到您找到了解决方案。我的评论“这取决于您的托管解决方案以及您可以配置它的深度”,这正是Firebase托管的重写模式所提供的托管功能。你会发现,水疗的效果就像梦一样,就像Vue.js没有的一样。我建议用英语学习。