I recently change the firebase database Orders to Location, and I know I missed something there or here but I can't find the issue exactly. Can anyone point to me what am I doing wrong here?
This is the error
2020-03-07 13:26:52.952 32564-32571/? E/zygote: Failed sending reply to debugger: Broken pipe 2020-03-07 13:26:54.048 32564-32620/com.example.policeemergencysystem E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da 2020-03-07 13:26:54.048 32564-32620/com.example.policeemergencysystem E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da 2020-03-07 13:27:09.533 32564-32564/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.policeemergencysystem, PID: 32564 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.policeemergencysystem/com.example.policeemergencysystem.AdminViewMapsActivity}: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() at com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@19.2.1:96) at com.example.policeemergencysystem.AdminViewMapsActivity.onCreate(AdminViewMapsActivity.java:38) at android.app.Activity.performCreate(Activity.java:6975) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
This is the code.
package com.example.policeemergencysystem;
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class AdminViewMapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
DatabaseReference mMaps;
private String userID = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_view_maps);
userID = getIntent().getStringExtra("uid");
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mMaps = FirebaseDatabase.getInstance().getReference().child("Location").child(userID);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMaps.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
double latitude = dataSnapshot.child("latitude").getValue(Double.class);
double longitude = dataSnapshot.child("longitude").getValue(Double.class);
LatLng latLng = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(latLng).title("Location"));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(latLng)
.zoom(12).build();
//Zoom in and animate the camera.
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
This is how my firebase database looks like 1st one