将GeoFire与Firebase云函数和TypeScript一起使用

将GeoFire与Firebase云函数和TypeScript一起使用,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,我正在编写一个Firebase云函数来获取靠近某个地理点的位置()。此函数接受两个参数:纬度和经度 export const getDrinkingFountains=functions.https.onRequest((req,res)=>{ 常数纬度=req.query.LATIONE; const longitude=req.query.longitude; const ref=admin.database().ref(“喷泉”); const geoFire=新geoFire(参考);

我正在编写一个Firebase云函数来获取靠近某个地理点的位置()。此函数接受两个参数:纬度和经度

export const getDrinkingFountains=functions.https.onRequest((req,res)=>{
常数纬度=req.query.LATIONE;
const longitude=req.query.longitude;
const ref=admin.database().ref(“喷泉”);
const geoFire=新geoFire(参考);
//常量键:喷泉[]={};
返回新承诺(功能(解决、拒绝){
const geoQuery=geoFire.query({
中心:[纬度,经度],
半径:10.0
});
geoQuery.on(“输入键”),功能(键、位置、距离){
//var fountain:fountain={key:key,latitude:location.latitude,longitude:location.longitude,distance:distance};
//按键(喷泉);
});
on(“ready”,function()){
解决(arrayShouldGoHere);
});
});
});
我的问题是它看起来像:

  • 我没有正确解析请求中的纬度和经度。事实上,GeoFire抱怨
    错误:无效的GeoFire位置“40,40”:纬度必须是一个数字。使用Postman,我实际上只是传递两个没有字符串文本的整数
    
  • 我不知道如何创建喷泉阵列。我不习惯打字

有什么提示吗?

您可以使用类将
纬度
经度
转换为数字

const latitude=Number(请求查询纬度);
常量经度=数字(请求查询经度);

您可以使用类将
纬度
经度
转换为数字

const latitude=Number(请求查询纬度);
常量经度=数字(请求查询经度);

看起来你的纬度是以
40,40的形式出现的,而不是一个数字。如果你记录纬度和经度,值是多少?@C_ogo通过打印出来,我得到纬度是40,经度是40,看起来是正确的。可能TypeScript会推断出类型并将其转换为字符串?那么,此文档
const ref=admin.database().ref('Fountains')
中的某个位置的值可能不正确TypeScript仅在编译时存在。。在运行期间,没有任何类型检查或推断结果是在纬度和经度上检查
typeof
,返回
string
。我不知道我该如何去“修复”它看起来你的纬度是以
40,40
的形式来的,而不是一个数字。如果你记录纬度和经度,值是多少?@C_ogo通过打印出来,我得到纬度是40,经度是40,看起来是正确的。可能TypeScript会推断出类型并将其转换为字符串?那么,此文档
const ref=admin.database().ref('Fountains')
中的某个位置的值可能不正确TypeScript仅在编译时存在。。在运行期间,没有任何类型检查或推断结果是在纬度和经度上检查
typeof
,返回
string
。我不知道我该怎么去“修理”它,汉克斯,那管用!现在,让我们把那个数组的东西修好。谢谢,这很有效!现在,让我们修复数组的问题。