首页 > 解决方案 > x-appengine-citylatlong 没有给出正确的 Lat & Lag

问题描述

我在 Firebase 中托管了我的网站。我正在使用 firebase onRequest 函数来跟踪用户 Lat & Lag。

下面是代码,

 User Geo Location Coordinates (Lat,Lag): ${req.headers['x-appengine-citylatlong']}

我从我的位置访问了该网站,但 firebase 功能给了我不同的 Lat/Lag。

我从这个网站https://www.gps-coordinates.net/得到正确的 Lat/Lag

目前我在这个网站 https://ipinfo.io/中列出了这个 Lat/Lag

如何获得准确的用户坐标?请帮忙。

注意:我不能使用客户端来获取 Lat/Lag。我必须在服务器端这样做

标签: firebasegoogle-cloud-functionsgeolocation

解决方案


Google App Engine 特定的标头可能不足以满足您的期望。您无法仅使用标题获得确切位置。根据App Engine 特定的标头

X-Appengine-CityLatLong

发出请求的城市的纬度和经度。对于来自 Mountain View 的请求,此字符串可能类似于“37.386051,-122.083851”。

在没有数据和客户端同意的情况下从服务器获取精确地址是不可能的。那将是一个巨大的隐私问题。我不确定您使用的是网络还是移动设备,但无论平台如何,位置权限都将始终适用。

这个线程也提到了这一点:

该规范明确指出,由于 API(地理定位)的性质也会暴露用户的位置,因此可能会损害他们的隐私,因此在继续之前必须获得用户尝试获取地理位置信息的许可

虽然 Maps SDK 具有包装库,因此您可以在服务器上运行它们,但没有提及 Geolocation API,因此您想要的实际上是不可能的。


推荐阅读