大佬教程收集整理的这篇文章主要介绍了android – 如何保存GeoFire坐标与Firebase数据库中的其他项目?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是我保存所有字符串的路径:databaseReferenceHrequests = firebaseDatabase.getReferenceFromUrl(“https://appName-e1a35.firebaseio.com/requests/”);
这是我如何保存它:
// in onButtonClicked method: postNewrequest(null,imageUID,MainActivity.userName.getText().toString(),time,date,utcFormatdatetiR_173_11845@e,MainActivity.userEmail.getText().toString(),geoFirE); // the method: public void postNewrequest(Bitmap bitmap,String imageUIDh,String postedBy,String postedAtTime,String postedOnDate,String utcFormatdatetiR_173_11845@e,String userEmail,GeoFire geoFirE) { Hrequest hrequest = new Helprequest(null,imageUIDh,postedAtTime,postedOnDate,userEmail,geoFirE); databaseReferenceHrequests.push().SETVALue(hrequest); }
我想要的是,我想在同一个节点中保存GeoFire坐标,这里是-KLIoLUsI0SpQZGpV1h4.这只是一个推送ID,它会随机生成.
我尝试通过给出这个参考:geoFire = new GeoFire(firebaseDatabase.getReferenceFromUrl(“https://appName-e1a35.firebaseio.com/requests/”));然后用如上所示的其他项目推动它.但是,这只保存了GeoFire坐标,而不是节点下的其他项目:请求.
那么,我的GeoFire应该是什么引用,以便与同一节点中的所有数据一起保存?
这里出了什么问题?请告诉我.
"items" : { <itemId> : { "someData" : "someData",... } } "items_LOCATIOn" : { <itemId> : { <geofireData> ... } }
要获取数据,首先需要在items_LOCATIOn节点执行GeoQuery,然后通过onKeyEntered方法获取数据.参数键是我的例子中的itemId.
geoFire = new GeoFire(FirebaseDatabase.geTinstance().getReference().child("items_LOCATIOn"); geoQuery = geoFire.queryAtLOCATIOn(geoLOCATIOn),radius); geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() { @Override public void onKeyEntered(String key,GeoLOCATIOn LOCATIOn) { //retrieve data } };
希望这可以帮助.
编辑
如何推送项目并设置geofire数据.
String itemId = ref.child("items").push().getKey(); ref.child("items").child(itemId).SETVALue(item); geoFire = new GeoFire(ref.child("items_LOCATIOn")); geoFire.setLOCATIOn(itemId,new GeoLOCATIOn(lattitude,longitudE));
GeoHash geoHash = new GeoHash(new GeoLOCATIOn(latitude,longitudE)); Map<String,Object> updates = new HashMap<>(); updates.put("items/" + itemId,item); updates.put("items_LOCATIOn/" + itemId + "/g",geoHash.getGeoHashString()); updates.put("items_LOCATIOn/" + itemId + "/l",Arrays.asList(latitude,longitudE)); ref.updateChildren(updates);
以上是大佬教程为你收集整理的android – 如何保存GeoFire坐标与Firebase数据库中的其他项目?全部内容,希望文章能够帮你解决android – 如何保存GeoFire坐标与Firebase数据库中的其他项目?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。