检索保存在firebase中的Longlat

时间:2017-06-04 15:10:19

标签: android firebase firebase-realtime-database android-maps

我正在做一个Android应用程序,让等待上班族搭便车的私人车辆。我有2个应用程序,用于乘客,另一个用于驾驶员。我的问题是如何检索乘客的位置,保存在firebase中然后将其显示在我的驾驶员地图中。

这是我的firebase数据库结构

 TRANSACTION

 - Ag6AVcsrt4d4npaoBJfVO91Dffe2
     - latlng
         -latitude: 10.287503
         -longitude: 123.863112

这在我的地图中

  @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {

            buildGoogleApiClient();
            mMap.setMyLocationEnabled(true);

        }
    }  else {
            buildGoogleApiClient();
            mMap.setMyLocationEnabled(true);

我试图像这样检索

    `  btnRetrieve.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


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

                     LatLng newLocation = new LatLng(
                                        dataSnapshot.child("TRANSACTION").child(firebaseUser.getUid()).child("latitude").getValue(),
                                        dataSnapshot.child("TRANSACTION").child(firebaseUser.getUid()).child("longitude").getValue()
                                        );


                            mMap.addMarker(new MarkerOptions()
                                    .position(newLocation)
                                    .title(dataSnapshot.getKey()));
                        }

                            @Override
                            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onChildRemoved(DataSnapshot dataSnapshot) {

                            }

                            @Override
                            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });

                            }
                        });`

0 个答案:

没有答案