Синхронизация меток на google карте с помощью Firebase
Должен срабатывать метод
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
LatLng sc = dataSnapshot.getValue(LatLng.class);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(sc);
markerOptions.title(sc.latitude + " : "+ sc.longitude);
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sc, 10));
googleMap.addMarker(markerOptions);
}
но метка на 2 телефоне не появляется.
public class DashboardFragment extends Fragment implements View.OnClickListener { static class Item{ LatLng cor1;
public Item(LatLng cor1) {
this.cor1 = cor1;
}
public Item() {
}
}
MapView mMapView;
private GoogleMap googleMap;
private FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference myRef = database.getReference("items");
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false);
mMapView = (MapView) rootView.findViewById(R.id.mapView);
mMapView.onCreate(savedInstanceState);
mMapView.onResume();
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
mMapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(final GoogleMap gmap) {
googleMap = gmap;
LatLng vietnam = new LatLng(48.707103, 44.516939);
googleMap.moveCamera(CameraUpdateFactory.newLatLng(vietnam));
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(vietnam, 10));
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(final LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title(latLng.latitude + " : "+ latLng.longitude);
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));
googleMap.addMarker(markerOptions);
DialogFrag dialog = new DialogFrag();
assert getFragmentManager() != null;
dialog.show(getFragmentManager(), "custom");
FirebaseDatabase.getInstance().getReference().push().setValue(latLng);
}
});
}
});
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
LatLng sc = dataSnapshot.getValue(LatLng.class);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(sc);
markerOptions.title(sc.latitude + " : "+ sc.longitude);
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sc, 10));
googleMap.addMarker(markerOptions);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
return rootView;
}
@Override
public void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mMapView.onLowMemory();
}
@Override
public void onClick(View v) {
}
}