首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从firebase中检索数据并创建标记

从firebase中检索数据并创建标记
EN

Stack Overflow用户
提问于 2019-07-11 15:11:03
回答 1查看 85关注 0票数 0

我想问一下如何从firebase中检索数据,即获取特定的数据。我的firebase数据库是这样的。

。我想检索圆圈中的数据。

整个火力基地看起来就像这样。

我尝试的是使用datasnapshot和value eventlistener来调用firebase中的数据。

代码语言:javascript
运行
复制
private void getMarkerFromDb()
    {
        String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
        DatabaseReference dataMarker = FirebaseDatabase.getInstance().getReference();

        if (getIntent()!=null) {

            lrpTest = (LRP_model) getIntent().getSerializableExtra("lrp");

            DatabaseReference routeRef = dataMarker.child("LRP")
                    .child(userId)
                    .child("route_models");
            routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (int counter =0; counter<dataSnapshot.getChildrenCount();counter++) {
                        for (DataSnapshot ss : dataSnapshot.child("route_models").getChildren()) {
                            double latitude = ss.child("rtLat").getValue(Double.class);
                            double longitude = ss.child("rtLng").getValue(Double.class);
                            LatLng loc = new LatLng(latitude, longitude);
                            mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
                        }
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }
    }

输出没有显示任何内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 15:16:15

更改此设置:

代码语言:javascript
运行
复制
            routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (int counter =0; counter<dataSnapshot.getChildrenCount();counter++) {
                        for (DataSnapshot ss : dataSnapshot.child("route_models").getChildren()) {
                            double latitude = ss.child("rtLat").getValue(Double.class);
                            double longitude = ss.child("rtLng").getValue(Double.class);
                            LatLng loc = new LatLng(latitude, longitude);
                            mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
                        }
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

如下所示:

代码语言:javascript
运行
复制
            DatabaseReference routeRef = dataMarker.child("LRP")
                    .child(userId);

            routeRef.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for (DataSnapshot ss : dataSnapshot.getChildren()) {
                            for (DataSnapshot datas : ss.child("route_models").getChildren()) {
                            double latitude = datas.child("rtLat").getValue(Double.class);
                            double longitude = datas.child("rtLng").getValue(Double.class);
                            LatLng loc = new LatLng(latitude, longitude);
                            mMap.addMarker(new MarkerOptions().position(loc).title("test")).setIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_action_pole));
                          }
                        }
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

将引用更改为节点userId,然后在其中迭代两次以访问route_models属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56983519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档