title: FireBase database null object
body: <p>I'm reading some data from Firebase database and returned object is <code>null</code>.</p>
  
  <p>I tried lots ways. When I have(like now in code) </p>
  
  <pre><code>marker(mMap.addMarker(new MarkerOptions().position(new LatLng(value, value2)).title("Mehehe"));) 
  </code></pre>
  
  <p>outside of <code>onDataChange</code> method the error occurs. But when i put marker in <code>onDataChange</code> method and set both: </p>
  
  <pre><code>DatabaseReference myRef2 = database2.getReference("latitude");
  </code></pre>
  
  <p>and</p>
  
  <pre><code>DatabaseReference myRef = database.getReference("latitude");
  </code></pre>
  
  <p>if the there are similar <code>getRefrences</code> there is no error but if I try</p>
  
  <pre><code> DatabaseReference myRef2 = database2.getReference("latitude");
  </code></pre>
  
  <p>and</p>
  
  <pre><code> DatabaseReference myRef = database.getReference("longitude");
  </code></pre>
  
  <p>Then there come similar error like when .addMarker is outside <code>onDataChange</code> method.</p>
  
  <pre><code>public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener, View.OnClickListener {
  
      private ImageView imageView;
  
      private GoogleMap mMap;
  
      private GoogleApiClient client;
  
      private DatabaseReference mDatabase;
  
      private String email;
  
      private double latitude;
      private double longitude;
  
      Double value;
      Double value2;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_maps);
          // 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);
  
          FirebaseDatabase database = FirebaseDatabase.getInstance();
          DatabaseReference myRef = database.getReference("samo@gmailcom - username");
  
          myRef.addValueEventListener(new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                  // This method is called once with the initial value and again
                  // whenever data at this location is updated.
                  String value = dataSnapshot.getValue(String.class);
                  Log.d("TAG", "Value is: " + value);
                  Toast.makeText(getApplicationContext(), value.toString(), Toast.LENGTH_SHORT).show();
              }
  
              @Override
              public void onCancelled(DatabaseError error) {
                  // Failed to read value
                  Log.w("TAG", "Failed to read value.", error.toException());
                  Toast.makeText(getApplicationContext(), error.toException().toString(), Toast.LENGTH_SHORT).show();
              }
          });
  
          client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
  
          imageView = (ImageView) findViewById(R.id.imageView);
          imageView.setOnClickListener(this);
  
      }
  
      @Override
      public void onClick(View view) {
  
          if (view == imageView) {
  
              Intent intent = new Intent(getApplicationContext(), ProfileSetUp.class);
              startActivity(intent);
  
          }
  
      }
  
      /**
       * Manipulates the map once available.
       * This callback is triggered when the map is ready to be used.
       * This is where we can add markers or lines, add listeners or move the camera. In this case,
       * we just add a marker near Sydney, Australia.
       * If Google Play services is not installed on the device, the user will be prompted to install
       * it inside the SupportMapFragment. This method will only be triggered once the user has
       * installed Google Play services and returned to the app.
       */
      @Override
      public void onMapReady(GoogleMap googleMap) {
          mMap = googleMap;
  
          if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &amp;&amp; ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
              // TODO: Consider calling
              //    ActivityCompat#requestPermissions
              // here to request the missing permissions, and then overriding
              //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
              //                                          int[] grantResults)
              // to handle the case where the user grants the permission. See the documentation
              // for ActivityCompat#requestPermissions for more details.
              return;
          }
  
          mMap.setMyLocationEnabled(true);
  
          LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  
          Criteria criteria = new Criteria();
  
          String provider = locationManager.getBestProvider(criteria, true);
  
          Location myLocation = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
          //        Location myLocation = locationManager.getLastKnownLocation(provider);
  
          mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
  
          //        double latitude = myLocation.getLatitude();
          //        double longitude = myLocation.getLongitude();
  
          latitude = myLocation.getLatitude();
          longitude = myLocation.getLongitude();
  
          mDatabase = FirebaseDatabase.getInstance().getReference();
  
          //        mDatabase.child("latitude").setValue(latitude);
          //        mDatabase.child("longitude").setValue(longitude);
  
          LatLng latLng = new LatLng(latitude, longitude);
  
          mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
          mMap.animateCamera(CameraUpdateFactory.zoomTo(14));
          mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("You are here!").snippet("Consider yourself located"));
          //        mMap.addMarker(new MarkerOptions().position(new LatLng(48.7352022, 19.1187914)).title("You are here!").snippet("Consider yourself located"));
  
  
          FirebaseDatabase database2 = FirebaseDatabase.getInstance();
          DatabaseReference myRef2 = database2.getReference("latitude");
  
          myRef2.addValueEventListener(new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                  // This method is called once with the initial value and again
                  // whenever data at this location is updated.
                  value2 = dataSnapshot.getValue(Double.class);
                  Log.d("TAG", "Value is: " + value2);
                  //                Toast.makeText(getApplicationContext(), value3.toString(), Toast.LENGTH_SHORT).show();
                  Toast.makeText(getApplicationContext(), value2.toString(), Toast.LENGTH_SHORT).show();
  
              }
  
              @Override
              public void onCancelled(DatabaseError error) {
                  // Failed to read value
                  Log.w("TAG", "Failed to read value.", error.toException());
                  //                Toast.makeText(getApplicationContext(), error.toException().toString(), Toast.LENGTH_SHORT).show();
              }
  
          });
  
          FirebaseDatabase database = FirebaseDatabase.getInstance();
          DatabaseReference myRef = database.getReference("longitude");
  
          myRef.addValueEventListener(new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                  // This method is called once with the initial value and again
                  // whenever data at this location is updated.
                  value = dataSnapshot.getValue(Double.class);
                  Log.d("TAG", "Value is: " + value);
  
                  //                mMap.addMarker(new MarkerOptions().position(new LatLng(value, value2)).title("Mehehe"));
                  Toast.makeText(getApplicationContext(), value.toString(), Toast.LENGTH_SHORT).show();
                  Toast.makeText(getApplicationContext(), value2.toString(), Toast.LENGTH_SHORT).show();
  
              }
  
              @Override
              public void onCancelled(DatabaseError error) {
                  // Failed to read value
                  Log.w("TAG", "Failed to read value.", error.toException());
                  //                Toast.makeText(getApplicationContext(), error.toException().toString(), Toast.LENGTH_SHORT).show();
              }
          });
  
          mMap.addMarker(new MarkerOptions().position(new LatLng(value, value2)).title("Mehehe"));
  
      }
  
      @Override
      public void onLocationChanged(Location location) {
  
  
  
      }
  }
  </code></pre>
  
  <p>And there is error message :-</p>
  
  <pre><code>08-15 10:47:53.591 4280-4280/com.samo.facedatefb E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.samo.facedatefb, PID: 4280
  java.lang.NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference
      at com.samo.facedatefb.MapsActivity.onMapReady(MapsActivity.java:268)
      at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
      at com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source)
      at android.os.Binder.transact(Binder.java:385)
      at xz.a(:com.google.android.gms.DynamiteModulesB:82)
      at maps.ad.u$5.run(Unknown Source)
      at android.os.Handler.handleCallback(Handler.java:815)
      at android.os.Handler.dispatchMessage(Handler.java:104)
      at android.os.Looper.loop(Looper.java:194)
      at android.app.ActivityThread.main(ActivityThread.java:5549)
      at java.lang.reflect.Method.invoke(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:372)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
  </code></pre>
  
  <p>My firebase Database Snippet.</p>
  
  <p><a href="https://i.stack.imgur.com/77h2F.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/77h2F.png" alt="enter image description here"></a></p>