firebase - How to limit the range of keys returned by GeoFire for Android? -


i followed this documentation end-to-end , have asked more 6-7 questions related problem here on stackoverflow. have written mail firebase support.

i'm saving data along geofire coordinates in firebasedatabase. getting saved this:

enter image description here

now, i'm trying retrieve using code:

geoquery = geofire.queryatlocation(new geolocation(currentlatdouble, currentlngdouble), 0.5);          geoquery.addgeoqueryeventlistener(new geoqueryeventlistener() {             @override             public void onkeyentered(string key, geolocation location) {      databasereference.child("requests").addlistenerforsinglevalueevent(new valueeventlistener() {                         @override                         public void ondatachange(datasnapshot datasnapshot) {                             map<string, string> newrequest = (map<string, string>) datasnapshot.getvalue();                             imageuid = newrequest.get("imageuidh");                             hdescription = newrequest.get("hdescription");                             currentlat = newrequest.get("currentlat");                             currentlng = newrequest.get("currentlng");                             postedby = newrequest.get("postedby");                             postedattime = newrequest.get("postedattime");                             postedondate = newrequest.get("postedondate");                             utcformatdatetime = newrequest.get("utcformatdatetime");                              string timestr = utcformatdatetime;                             simpledateformat df = new simpledateformat("yyyy-mm-dd hh:mm:ss");                             df.settimezone(timezone.gettimezone("utc"));                             date date = null;                             try {                                 // error on line below                                 date = df.parse(timestr);                                 //                             } catch (parseexception e) {                                 e.printstacktrace();                             }                             df.settimezone(timezone.getdefault());                             final string persisted = df.format(date);                              // parse string db - utc timezone                             date parsed = null;                             try {                                 parsed = df.parse(persisted);                             } catch (parseexception e) {                                 e.printstacktrace();                             }                              // convert whatever timezone display purposes                             final simpledateformat displayformat = new simpledateformat("h:mm a");                             displayformat.settimezone(timezone.getdefault());                              formattedtime = displayformat.format(parsed);                              preparedataforrequests();                         }                          @override                         public void oncancelled(databaseerror databaseerror) {                             snackbar snackbar = snackbar                                     .make(coordinatorlayout, databaseerror.getmessage(), snackbar.length_long);                             snackbar.setduration(snackbar.length_short);                             snackbar.show();                             progressbarloadingrequests.setvisibility(view.invisible);                         }                     }); }              @override             public void onkeyexited(string key) {              }              @override             public void onkeymoved(string key, geolocation location) {              }              @override             public void ongeoqueryready() {                 toast.maketext(getbasecontext(), "geoqueries retrieved", toast.length_short).show();             }              @override             public void ongeoqueryerror(databaseerror error) {                 toast.maketext(getbasecontext(), "error retriving geoquery", toast.length_short).show();             }         }); 

the problem posts posted 1000 kms away me getting retrieved post posted 0.1 kms away me getting retrieved, though posts posted within 0.5 kms should have been shown.

how achieve this?


Comments