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 如何使用Firebase的云函数检测浏览器类型?_Javascript_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript 如何使用Firebase的云函数检测浏览器类型?

Javascript 如何使用Firebase的云函数检测浏览器类型?,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,在云函数内部, 我想为手机和桌面提供不同的页面。 我想知道: 如果它的手机或台式机或一个很好的猜测,希望这个页面 如果可能,获取浏览器/谷歌默认语言 目标是使用不同的URL为不同的用户提供服务 exports.contentServer = functions.https.onRequest((request, response) => { //determine here if its mobile or not 您可以使用以下npm包: 通过在终端中执行以下操作

在云函数内部, 我想为手机和桌面提供不同的页面。 我想知道:

如果它的手机或台式机或一个很好的猜测,希望这个页面 如果可能,获取浏览器/谷歌默认语言 目标是使用不同的URL为不同的用户提供服务

     exports.contentServer = functions.https.onRequest((request, response) => {

     //determine here if its mobile or not

您可以使用以下npm包:

通过在终端中执行以下操作来安装:

npm i detect-browser
然后您可以执行以下操作,例如:

const { detect } = require('detect-browser');
const browser = detect();

// handle the case where we don't detect the browser
if (browser) {
  console.log(browser.name);
  console.log(browser.version);
  console.log(browser.os);
}

嘿,彼得。您确定浏览器检测有效吗?我以为在请求到达云函数代码之前就删除了头。这似乎是个问题,有没有简单的/本地的方法来知道它是否是移动的?@phamng为什么dnt u在前端处理浏览器类型,在云函数中检索数据,在前端处理数据type@PeterHaddad谢谢因为这意味着更多的加载时间:用户键入domain.com,转到我的功能,获取一些重定向页面,我确定它是否是移动的,再次转到服务器并请求domainMobile/Desktop。这就是你的意思吗?听起来效率不高浏览器功能检测通常是您希望在浏览器本身中执行的,而不是在后端运行的代码中执行的。@DougStevenson谢谢,但这意味着用户请求domain.com,然后他得到一个重定向页面,我在那里找到了这个问题,然后再次向服务器请求页面移动/桌面的正确版本,对吗?这需要两倍的时间来加载。不确定你所说的需要两倍的时间。客户根据其能力做出所有决策。“这怎么会加倍呢?”道格·史蒂文森:除了结论之外,你有没有读过我其余的评论?就在那里。你访问服务器两次而不是一次。我读了全部内容。也许你可以编辑这个问题,通过检测浏览器本身的功能来解释你试图避免的具体的、可测量的问题。