基于Firebase Firestore数据的Nuxt SPA动态路由

时间:2020-03-05 19:30:10

标签: firebase google-cloud-firestore routing nuxt.js

所以我想在Netlify上托管一个nuxt网站,那里有一条子路由,谁的子弹是Firebase Firestore文档ID。

示例:

https://www.example.com/users/steve

(其中“ steve”是文档ID)

因此,当路由被点击时,我将需要查询firebase以查看其是否存在,如果不存在,则必须返回404。这是否可能?我可以在.net或php中轻松完成此操作,但是我不确定SPA。

如果可以的话,我应该在文档中寻找什么?

1 个答案:

答案 0 :(得分:0)

一种解决方案是实现一个像REST API一样调用的HTTPS Cloud Function,并将HTTP GET请求发送到函数端点。

如文档“用作onRequest()的参数中所述,Request对象使您可以访问客户端发送的HTTP请求的属性”。

所以您的Cloud Function看起来像:

exports.getUser = functions.https.onRequest((req, res) => {
  // get the value of the user by parsing the url
  const baseUrl = req.baseUrl;
  //Extract the user from baseUrl
  const user = ....

 //query the Firestore database
 admin.firestore().collection('users').doc(user).get()
 .then(doc => {
    if (doc.exists) {
        res.status(200).end();
    } else {
        res.status(404).end();
    }

});

有关云功能的更多信息,请参见get started pagevideo series

请注意,您可以connect an HTTP function to Firebase Hosting这样使用,即“您的Firebase托管站点上的请求可以代理到特定的HTTP函数”。