const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
//https://*********.cloudfunctions.net/searchNearbyLatLng?originlat=23.7939419&originlng=90.3888492
exports.searchNearbyLatLng = functions.https.onRequest((request, response) => {
let lat1Param = request.query.originlat;
let lng1Param = request.query.originlng;
let rootRef = admin.database().ref('riders_online');
rootRef.once('value', gotData, errData);
function gotData(data) {
let items = data.val();
let keys = Object.keys(items);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let item = items[key];
//console.log(item.isUserRequested, item.riderOriginLatitude, key);
let distance = getDistance( lat1Param, lng1Param, data.val().riderOriginLatitude, data.val().riderOriginLongitude );
if( distance < 1 ) {
response.send('Record' + item.riderOriginLatitude);
}
}
}
function errData(error) {
console.log("Something went wrong.");
console.log(error);
}
function getDistance( latitude1, longitude1, latitude2, longitude2 ) {
let earth_radius = 6371;
let dLat = degToRad( latitude2 - latitude1 );
let dLng = degToRad( longitude2 - longitude1 );
let a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(degToRad(latitude1)) * Math.cos(degToRad(latitude2)) * Math.sin(dLng/2) * Math.sin(dLng/2);
let c = 2 * Math.asin(Math.sqrt(a));
let d = earth_radius * c;
return d;
}
function degToRad(degrees){
let pi = Math.PI;
return degrees * (pi/180);
}
}, err => {
console.error(err.stack);
response.status(500).send('Unexpected error.');
});
因为Firebase不支持地理空间查询,所以我建议使用geohash
。
这在这个firebase博客上有很好的暴露:
https://firebase.googleblog.com/2013/09/geofire-location-queries-for-fun-and.html
我正在创建一个应用程序,它使用两步对象创建到firebase实时数据库。 我想要的是,在一个捕获onCreate事件的云函数上,如果一些规则不完整,那么create操作就会被停止。 有办法做到这一点吗?或者我需要移除节点而不是拒绝创建? 谢谢你!
我正在尝试读取我的Flutter应用程序中的firebase实时数据库中的数据,并将其分配给模型类,但是,我在控制台中得到了以下错误。 下面是我到目前为止所做的代码 员工类别 我不知道我做错了什么,请帮我解决这个问题
问题内容: 因此,我正在编写一个从redis读取的节点应用程序,我想执行某种查询,该查询返回有人知道怎么做的数据库数量。 因此,现在基本上我所拥有的是一种获取数据库中所有密钥的方法,但是我希望级别更高,我想遍历所有数据库然后获取所有密钥。这是用于获取当前数据库的所有密钥的代码。 问题答案: 解决方案1 正如@carebdayrvis所提到的,您可以使用command获取数据库信息,并解析该信息以获
我如何删除记录“苹果”(在图片中标记)? 根据文档,要移除一个项,需要对引用调用removeValue()。但要获得引用,我需要子ID。因为它是一个随机生成的id(-kisnx87ayigsh3ilp0d),如何删除它?
问题内容: 我想从下面的数据库表中找到最近的位置 我已经从Google地图中获取了所有数据。在这里,我必须找到一个地方最近的位置。假设我在Surkhet地方,其纬度为28.6,经度为81.6,如何找到距Surkhet地方最近的地方。 问题答案: 这是最好的查询
firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn