Google云功能不会被触发

时间:2020-04-30 10:57:14

标签: node.js firebase google-cloud-functions firebase-hosting

当我到达托管网站的路径时,我正在尝试触发Google云功能。

因此,我已将其添加到 firebase.json

"rewrites": [
  {
    "source": "**",
    "destination": "/index.html",
    "function": "app"
  } 

这是我称为“ app” 的功能:

[...]
server.get('*', (req:any,res:any) => {
 const isBot = detectBot(req.headers['user-agent']);

 if(isBot) {
     const botUrl = generateUrl(req);

     nf(`${renderUrl}/${botUrl}`)
     .then((r: { text: () => any; }) => r.text())
     .then((body: { toString: () => any; }) => {
         res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
         res.set('Vary','User-Agent');
         res.send(body.toString())
     });
 } else {
    nf(`https://${appUrl}`)
    .then((r: { text: () => any; }) => r.text())
    .then((body: { toString: () => any; }) => {
        res.send(body.toString());
    });
 }


});


exports.app = functions.https.onRequest(server);

已部署“应用” 功能和网站,但是当我到达url时,不会触发“应用” 功能。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的“重写”部分未正确设置。您可以同时指定目标(“ /index.html”)和函数参数。这是一个重写示例,它将对past_tense = [word + ('d' if word[-1]=='e' else 'ed') for word in words] 的请求定向到您的/function-url函数,而其他请求(未定义或“ / foo”和“ / foo / **”)定向到app:< / p>

index.html

有关如何配置重写here的更多信息。