有关验证的简单Firebase规则

时间:2017-03-20 20:06:38

标签: android validation firebase firebase-realtime-database firebase-security

我正在使用firebase数据库,并从服务器端收集用户的GPS坐标和上次时间戳。如

  

+用户

     
      
  • 用户id

         
        
    • 用户位置

    •   
    • lastTimestamp

    •   
  •   

我想要添加一个firebase规则,用户只能读取与他关系密切的人(例如1公里左右)和及时(例如在那里呆了30分钟的人)。是否可以使用newData在firebase规则段中解决并验证注释?

2 个答案:

答案 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