Javascript 仅为firebase函数中的某些用户代理调用云函数

Javascript 仅为firebase函数中的某些用户代理调用云函数,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我只想在请求来自GoogleBot用户代理时调用firebase函数 目前,我正在对每个http请求调用该函数 请求进来了 检查用户代理 用户代理是Google然后是response.send(“hello Google”) 用户代理未Google从firebase主机呈现index.html 这将导致循环,因为函数将从firebase宿主请求index.html文件,这样做将再次调用函数。因此,我认为最好只在请求来自google用户代理时调用该函数 这可能吗?有什么办法解决这个问题吗?谢谢大

我只想在请求来自GoogleBot用户代理时调用firebase函数

目前,我正在对每个http请求调用该函数

  • 请求进来了
  • 检查用户代理
  • 用户代理是Google然后是
    response.send(“hello Google”)
  • 用户代理未Google从firebase主机呈现index.html

  • 这将导致循环,因为函数将从firebase宿主请求index.html文件,这样做将再次调用函数。因此,我认为最好只在请求来自google用户代理时调用该函数


    这可能吗?有什么办法解决这个问题吗?谢谢大家!

    Googlebot使用特定的用户代理发出请求,几乎所有请求都包含关键字Googlebot。只需获取标题并检查它是否包含关键字。 假设您正在使用express:

    if (req.get('User-Agent').toLowerCase().includes('googlebot')) {
        res.send("hello google")
    } else {
        request({uri: "http://example.com/index.html"}, 
            function(error, response, body) {
                res.send(body)
            });
        });
        //or res.redirect(302, "http://example.com/index.html")
    }
    

    谷歌机器人发出带有特定用户代理的请求,几乎所有请求都包含关键词谷歌机器人。只需获取标题并检查它是否包含关键字。 假设您正在使用express:

    if (req.get('User-Agent').toLowerCase().includes('googlebot')) {
        res.send("hello google")
    } else {
        request({uri: "http://example.com/index.html"}, 
            function(error, response, body) {
                res.send(body)
            });
        });
        //or res.redirect(302, "http://example.com/index.html")
    }
    

    重定向到example.com/index.html不起作用?它将再次触发函数重定向到example.com/index.html不起作用?它将再次触发函数这就是我现在正在做的,但我只想在用户代理包含google时调用该函数。同时,按照您的建议执行操作将导致循环,这就是我现在正在做的,但我只想在用户代理包含google时调用该函数。同时,按照您的建议进行操作将导致循环