如何从以下提供的结构中获取firebase数据库的所有纬度和经度?无法在推送键节点内获取随机生成的数据,我无法捕获它。
DEVICE_ID-COORDINATES-> DATE-> PUSHKEY(EX:-KSHJDWFQ) - >现在获得CHILD LATITUDE和LONGITUDE。 先感谢您。 请帮忙
{
"Driver2" : {
"1_353490067508933" : {
"coordinates" : {
"18-11-2017" : {
"-KzDdfZtds7rxwETF4oN" : {
"latitude" : "22.5735663",
"longitude" : "88.4317749"
},
"-KzDl67WgnmKlYADN4sE" : {
"latitude" : "22.5736048",
"longitude" : "88.4316857"
}
}
}
}
}
这就是我所做的
final String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
fb_ref = new Firebase(Config.FIREBASE_URL_STARTED);
fb_ref.child("1_353490067508933").limitToLast(1).addValueEventListener(new com.firebase.client.ValueEventListener() {
@Override
public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
//Driver post = dataSnapshot.getValue(Driver.class);
//Log.d("DataNodee", post.getDri_lat());
//Log.d("DataNodee", post.getDri_lng());
// updatemap(Double.parseDouble(post.getDri_lat()), Double.parseDouble(post.getDri_lng()));
for (com.firebase.client.DataSnapshot Driver : dataSnapshot.getChildren()) {
String childKey = Driver.getKey();
Log.d("childKey", childKey);
firebase_url_coordinates = "https://pool-xyz.firebaseio.com/Driver2/1_353490067508933/" + childKey + "/coordinates/" + date + ".json";
Log.d("json_url", firebase_url_coordinates);
makeJsonObjectRequest();
}
LCUtils.showToastShort(mContext, "Found");
} else {
LCUtils.showToastShort(mContext, "Not Found");
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
答案 0 :(得分:1)
试试这个:
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("Driver2").child("Device_id_here").child("coordinates").child("date_here");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
String latitude=data.child("latitude").getValue().toString();
String longs=data.child("longitude").getValue().toString();
Log.i("latitude", latitude);
Log.i("longtitude",longs);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
所以根据这个:
DEVICE_ID-COORDINATES-> DATE-> PUSHKEY(EX:-KSHJDWFQ) - >现在获得儿童的劳顿和长寿。
您有id和日期,问题出在pushkey
。因此,您必须查询child("date")
,然后执行for循环,该循环将在pushkeys
内迭代,从而为您提供longitude
和latitude
值。