gpt4 book ai didi

java - Firebase 读取数据

转载 作者:行者123 更新时间:2023-11-29 01:05:44 25 4
gpt4 key购买 nike

如何从以下提供的结构中获取 firebase 数据库的所有纬度和经度?无法获取推送 key 节点内的数据,因为它是随机生成的,我无法捕获它。

DEVICE_ID-COORDINATES->DATE->PUSHKEY (EX:-KSHJDWFQ)->现在获取 child 的纬度和经度。先感谢您。请帮忙

 {
"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) {
}
});

最佳答案

试试这个:

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)->现在获取 child 的纬度和经度。

您有 ID 和日期,问题出在 pushkey 中。因此,您必须查询 child("date"),然后执行一个 for 循环,该循环将在 pushkeys 内迭代,从而为您提供 longitudelatitude 值。

关于java - Firebase 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47365697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com