我正在使用firebase数据库,并从服务器端收集用户的GPS坐标和上次时间戳。如
+用户
用户id
用户位置
lastTimestamp
我想要添加一个firebase规则,用户只能读取与他关系密切的人(例如1公里左右)和及时(例如在那里呆了30分钟的人)。是否可以使用newData在firebase规则段中解决并验证注释?
答案 0 :(得分:3)
使用geofire存储和检索位置。
https://github.com/firebase/geofire-java
设置位置数据
geoFire.setLocation("userId", new GeoLocation(37.7853889, -122.4056973));
地理位置查询
// creates a new query around [37.7832, -122.4056] with a radius of 0.6 kilometers
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(37.7832, -122.4056), 0.6);
要添加时间限制,请更改特定数据的读取规则。
// only messages from the last 30 minutes can be read
".read": "data.child('timestamp').val() > (now - 18000000)",
答案 1 :(得分:0)
我认为你在geofire中设置了半径。 我也是firebase的新手,所以我对它并不熟悉。 好好检查一下。 https://github.com/firebase/geofire