title: Querying database to make sure new users don't register with an already existing username
body: <p>What I am trying to achieve is when a new user registers I would like to run a query to make sure that the username which they have selected doesn't already belong to some other user. To do this I have written the <code>register();</code> method, but it's not giving me back anything, not the <code>Toast</code> message indicating that the username has already been taken, nor does it take me to the next page indicating that the email has been sent and the user has to now log in.</p>
  
  <p>Can someone explain to me what I am doing wrong?</p>
  
  <p><strong>RegisterActivity</strong></p>
  
  <pre><code>private void register(final String username, final String fullname, String email, String password) {
          DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
          reference.addListenerForSingleValueEvent(new ValueEventListener() {
              @Override
              public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                  boolean ifUsernameExists = false;
                  for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                      User user = snapshot.getValue(User.class);
                      if (user != null) {
                          if (username.equals(user.getUsername())) {
                              Toast.makeText(RegisterActivity.this, "That username has already been taken. Try another", Toast.LENGTH_SHORT).show();
                              ifUsernameExists = true;
                          }
                      }
                  }
  
                  if (!ifUsernameExists) {
                      mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(RegisterActivity.this, task -&gt; {
                          if (task.isSuccessful()) {
                              sendVerificationEmail();
                              FirebaseUser firebaseUser = mAuth.getCurrentUser();
                              String userid = firebaseUser.getUid();
  
                              mReference = FirebaseDatabase.getInstance().getReference().child("Users").child(userid);
  
                              HashMap&lt;String, Object&gt; hashMap = new HashMap&lt;&gt;();
                              hashMap.put("id", userid);
                              hashMap.put("email", email);
                              hashMap.put("username", username.toLowerCase());
                              hashMap.put("fullname", fullname);
                              hashMap.put("bio", "");
                              hashMap.put("imageurl", "https://firebasestorage.googleapis.com/v0/b/events-50eda.appspot.com/o/Placeholder.png?alt=media&amp;token=0e651fa8-32e9-4f42-be9a-a5365f44b0f4");
  
                              mReference.setValue(hashMap).addOnCompleteListener(task1 -&gt; {
                                  if (task1.isSuccessful()) {
                                      FirebaseAuth.getInstance().signOut();
                                      Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                                      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                                      startActivity(intent);
                                  }
                              });
                          } else {
                              Toast.makeText(RegisterActivity.this, "You can't register with that email", Toast.LENGTH_LONG).show();
                              mProgressDialog.dismiss();
                          }
                      });
                  }
              }
  
              @Override
              public void onCancelled(@NonNull DatabaseError databaseError) {
  
              }
          });
      }
  </code></pre>