如何获得这个firebase值?

时间:2018-04-18 14:04:46

标签: java android firebase firebase-realtime-database

这是我的代码。但不行。我得到零值。

enter image description here Database Map

我想要只获得纬度经度值..

mLocationRef = FirebaseDatabase.getInstance().getReference().child("districsubdepot").child("Jaffna");

mLocationRef.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {

        Double lt = (dataSnapshot.child("latitude").getValue(Double.class));
        Double lo=(dataSnapshot.child("logitude").getValue(Double.class));
        Toasty.success(getApplicationContext(), "value" + lt+lo).show();
    }
}

最后我想用这些纬度经度绘制折线。怎么做?

2 个答案:

答案 0 :(得分:0)

除非使用多个查询,否则无法获得部分值。 Firebase将数据存储为大型json文件(并且就像这样)。这意味着它尊重json标准。

在标准的json中,除非使用高级标准和技术(例如jsonpath),否则无法检索绑定到多个键的数据。

答案 1 :(得分:0)

您缺少深入了解ID为"LANrjuA.....sBJ"

的子节点

它是节点"Jaffna."

下的节点

所以基本上你应该将你的引用更新为: mLocationRef = FirebaseDatabase.getInstance().getReference().child("districsubdepot").child("Jaffna").child("LANrjuA.....sBJ");

显然硬编码ID不是最佳实践,你应该动态设置/绑定/传递它,但这是关于你正在构建的流程 - 而不是这里的主要故事。

希望它有所帮助!