如何检索所有键下的所有纬度和经度? see here 我试过了,但是没有工作:
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String text = dataSnapshot.child(key).child("latitude").getValue(String.class);
System.out.println(text);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
我要打印:
40.7486720036497
-73.9856280013919
等...
答案 0 :(得分:0)
使用循环从这样的火力基地获取纬度和经度的列表-
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String keys=datas.getKey();
String latitudes=datas.child("latitude").getValue().toString();
String location=datas.child("location").getValue().toString();
String longitude=datas.child("longitude").getValue().toString();
}
}
});
希望有帮助!
答案 1 :(得分:0)
为什么不使用模型类方法? 创建自己的自定义类
public class ModelClass {
private String latitude;
private String longitude;
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public ModelClass(String latitude, String longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
}
然后在插入数据时,像这样插入。
ModelClass mc=new ModelClass("1.23","3.25");//You pass dynamic value here using variable
String key=mref.push().getKey();
myRef.child(key).setValue(mc);
然后读取这样的值。
List<ModelClass> list=new ArrayList<>();
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapShot ds:dataSnapShot){
ModelClass mc=ds.getValue(ModelClass.class);
list.add(mc);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
然后,您可以使用数据列表。 有关更多参考,see the docs here。