在我的Firebase数据库中,我有一个节点,该节点的子级可以容纳某个位置的经度和纬度,例如下面的json代码段中
{
"DriversAvailable" : {
"sfdqfkoxYjXB2YRDTfIaezWgkBd2" : {
".priority" : "dn5bpxwrtz",
"g" : "dn5bpxwrtz",
"l" : [ 33.7925271, -84.3881384 ]
}
并且我正在使用以下代码将纬度和经度放入单独的变量中
driverLocationReferenceGetLocation = FirebaseDatabase.getInstance().getReference("DriversAvailable").child(driverFoundID);
driverLocationReferenceGetLocation.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapm: dataSnapshot.getChildren()) {
Double latitude = (Double) snapm.child("0").getValue();
Double longitude = (Double) snapm.child("1").getValue();
当我调试它时,它表明值snapm的值设置为1 = {0 = 33.79,1 = -84.38},但是由于某些原因,实际的纬度和经度变量为空
答案 0 :(得分:0)
不确定代码中哪些内容无效,但我绝对建议您收听要获取其数据的确切节点:
driverLocationReferenceGetLocation = FirebaseDatabase.getInstance().getReference("DriversAvailable").child(driverFoundID);
driverLocationReferenceGetLocation.child("l").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
Double latitude = snapshot.child("0").getValue(Double.class);
Double longitude = snapshot.child("1").getValue(Double.class);