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:
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
Post a Comment