我无法从Firebase获取标记 [英] I can't get markers from firebase

查看:43
本文介绍了我无法从Firebase获取标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我开始此活动时,我的应用程序停止了.我需要从数据块中获取坐标并放置标记.我不知道哪里出了问题.

When i start thist activity my app stopping.I need get coordinates from databes and place marker. I don't know where is problem.

我的数据库:

public class MapsActivityUser extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
DatabaseReference f_database = FirebaseDatabase.getInstance().getReference();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps_user);
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {

    mMap = googleMap;
    f_database.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot child : dataSnapshot.getChildren()) {
                Map data = (Map) child.getValue();
                Map mCoordinate = (HashMap)data.get("Blog");
                double latitude = (double) (mCoordinate.get("lat"));
                double longitude = (double) (mCoordinate.get("lng"));
                LatLng location = new LatLng(latitude,longitude);
                googleMap.addMarker(new MarkerOptions().position(location).title("pedik"));
            }
        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

推荐答案

尝试像这样检索lat和lng

Try like this to retrive lat and lng

f_database.child("Blog").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot: dataSnapshot.getChildren()) {         
                double latitude = (double) (snapshot.child("lat").getValue());
                double longitude = (double) ((snapshot.child("lng").getValue());
                LatLng location = new LatLng(latitude,longitude);
                googleMap.addMarker(new MarkerOptions().position(location).title("pedik"));
            }
        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

这篇关于我无法从Firebase获取标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆