将GeoFire与Firebase云函数和TypeScript一起使用
我正在编写一个Firebase云函数来获取靠近某个地理点的位置()。此函数接受两个参数:纬度和经度将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(参考);
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
。我不知道我该怎么去“修理”它,汉克斯,那管用!现在,让我们把那个数组的东西修好。谢谢,这很有效!现在,让我们修复数组的问题。