title: Firebase database failing to update
body: <p>There is a settings option where you can set your name and address. it is supposed to update in the database of the current user. Whenever the information is put in and the "confirm" button is pressed the app is crashing. Please help me debug this. I have included a picture of what the database is supposed to look like.</p>
  
  <p><a href="https://i.stack.imgur.com/bTuJx.jpg" rel="nofollow noreferrer">Here is what the database looks like</a></p>
  
  <p>the following the logcat</p>
  
  <pre><code>2020-05-09 18:42:26.825 749-749/com.example.macdate E/AndroidRuntime: FATAL EXCEPTION: main
      Process: com.example.macdate, PID: 749
      java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.firebase.database.DatabaseReference.updateChildren(java.util.Map)' on a null object reference
          at com.example.macdate.SettingsActivity.saveUserInformation(SettingsActivity.java:143)
          at com.example.macdate.SettingsActivity.access$000(SettingsActivity.java:38)
          at com.example.macdate.SettingsActivity$2.onClick(SettingsActivity.java:86)
          at android.view.View.performClick(View.java:6294)
          at android.view.View$PerformClick.run(View.java:24770)
          at android.os.Handler.handleCallback(Handler.java:790)
          at android.os.Handler.dispatchMessage(Handler.java:99)
          at android.os.Looper.loop(Looper.java:164)
          at android.app.ActivityThread.main(ActivityThread.java:6494)
          at java.lang.reflect.Method.invoke(Native Method)
          at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
  </code></pre>
  
  <p>The following is the code that requires attention</p>
  
  <pre><code>package com.example.macdate;
  
  import androidx.annotation.NonNull;
  import androidx.appcompat.app.AppCompatActivity;
  
  import android.app.Activity;
  import android.content.Intent;
  import android.graphics.Bitmap;
  import android.net.Uri;
  import android.os.Bundle;
  import android.provider.MediaStore;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.ImageView;
  
  import com.bumptech.glide.Glide;
  import com.google.android.gms.tasks.OnFailureListener;
  import com.google.android.gms.tasks.OnSuccessListener;
  import com.google.android.gms.tasks.Task;
  import com.google.firebase.auth.FirebaseAuth;
  import com.google.firebase.auth.FirebaseUser;
  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;
  import com.google.firebase.storage.FirebaseStorage;
  import com.google.firebase.storage.StorageReference;
  import com.google.firebase.storage.UploadTask;
  
  import java.io.ByteArrayOutputStream;
  import java.util.HashMap;
  import java.util.Map;
  import java.io.IOException;
  
  
  public class SettingsActivity extends AppCompatActivity {
  
      private EditText mNameField, mPhoneField;
  
      private Button mBack, mConfirm;
  
      private ImageView mProfileImage;
  
      private FirebaseAuth mAuth;
      private DatabaseReference mCustomerDatabase;
  
      private String userId, name, phone, profileImageUrl;
  
      private Uri resultUri;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_settings);
  
          String userSex = getIntent().getExtras().getString("userSex");
          mNameField = (EditText) findViewById(R.id.name);
          mPhoneField = (EditText) findViewById(R.id.phone);
  
          mProfileImage = (ImageView) findViewById(R.id.profileImage);
  
          mBack = (Button) findViewById(R.id.back);
          mConfirm = (Button) findViewById(R.id.confirm);
  
          mAuth = FirebaseAuth.getInstance();
          FirebaseUser mFirebaseUser = mAuth.getCurrentUser();
          if(mFirebaseUser != null &amp;&amp; userSex != null) {
              userId = mFirebaseUser.getUid();
              mCustomerDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(userSex).child(userId);
              getUserInfo();
          }
  
          mProfileImage.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  Intent intent = new Intent(Intent.ACTION_PICK);
                  intent.setType("image/*");
                  startActivityForResult(intent, 1);
              }
          });
          mConfirm.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  saveUserInformation();
              }
          });
          mBack.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  finish();
                  return;
              }
          });
      }
  
  
      private void getUserInfo() {
          mCustomerDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
              @Override
              public void onDataChange(DataSnapshot dataSnapshot) {
                  if(dataSnapshot.exists() &amp;&amp; dataSnapshot.getChildrenCount()&gt;0){
                      Map&lt;String, Object&gt; map = (Map&lt;String, Object&gt;) dataSnapshot.getValue();
                      if(map.get("name")!=null){
                          name = map.get("name").toString();
                          mNameField.setText(name);
                      }
                      if(map.get("phone")!=null){
                          phone = map.get("phone").toString();
                          mPhoneField.setText(phone);
                      }
  
                      if(map.get("profileImageUrl")!=null){
                          profileImageUrl = map.get("profileImageUrl").toString();
                          switch(profileImageUrl){
                              case "default":
                                  Glide.with(getApplication()).load(R.mipmap.ic_launcher).into(mProfileImage);
                                  break;
                              default:
                                  Glide.with(getApplication()).load(profileImageUrl).into(mProfileImage);
                                  break;
                          }
                      }
                  }
              }
  
              @Override
              public void onCancelled(DatabaseError databaseError) {
  
              }
          });
  
      }
  
      private void saveUserInformation() {
          name = mNameField.getText().toString();
          phone = mPhoneField.getText().toString();
  
          Map userInfo = new HashMap();
          userInfo.put("name", name);
          userInfo.put("phone", phone);
          mCustomerDatabase.updateChildren(userInfo);
          if(resultUri != null){
              StorageReference filepath = FirebaseStorage.getInstance().getReference().child("profileImages").child(userId);
              Bitmap bitmap = null;
  
              try {
                  bitmap = MediaStore.Images.Media.getBitmap(getApplication().getContentResolver(), resultUri);
              } catch (IOException e) {
                  e.printStackTrace();
              }
  
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
              byte[] data = baos.toByteArray();
              UploadTask uploadTask = filepath.putBytes(data);
              uploadTask.addOnFailureListener(new OnFailureListener() {
                  @Override
                  public void onFailure(@NonNull Exception e) {
                      finish();
                  }
              });
              uploadTask.addOnSuccessListener(new OnSuccessListener&lt;UploadTask.TaskSnapshot&gt;() {
                  @Override
                  public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                      Task&lt;Uri&gt; downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl();
  
                      Map userInfo = new HashMap();
                      userInfo.put("profileImageUrl", downloadUrl.toString());
                      mCustomerDatabase.updateChildren(userInfo);
  
                      finish();
                      return;
                  }
              });
          }else{
              finish();
          }
      }
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          if(requestCode == 1 &amp;&amp; resultCode == Activity.RESULT_OK){
              final Uri imageUri = data.getData();
              resultUri = imageUri;
              mProfileImage.setImageURI(resultUri);
          }
      }
  
  }*
  </code></pre>