【问题标题】:How to get the this firebase value?如何获得这个火力基础值?
【发布时间】:2018-09-28 19:40:54
【问题描述】:

这是我的代码。但不工作。我得到空值。

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();
    }
}

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

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    除非使用多个查询,否则您无法获得部分价值。 Firebase 将数据存储为(并且行为类似于)一个大的 json 文件。这意味着它尊重 json 标准。

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

    【讨论】:

    • 为什么先生?不可能?
    • @PilojanSiva 您只能获取相对于单个键的值。请记住,firebase 存储数据(并且行为类似于)一个大 json,它不支持任何标准,如 jsonpath
    【解决方案2】:

    您缺少挖掘 id 为的子节点:"LANrjuA.....sBJ"

    就是节点"Jaffna."下的节点

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

    显然,对 ID 进行硬编码不是最佳做法,您应该动态设置/绑定/传递它,但这与您正在构建的流程有关 - 不是这里的主要故事。

    希望对你有帮助!

    【讨论】:

    • 我想要动态获取
    • 我有这个地图类
    猜你喜欢
    • 2017-12-21
    • 2016-09-17
    • 2018-01-14
    • 2022-01-22
    • 2021-12-30
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多