firebase getValue方法未从节点检索值

时间:2019-07-10 01:51:54

标签: java android firebase firebase-realtime-database

在我的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},但是由于某些原因,实际的纬度和经度变量为空

1 个答案:

答案 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);