title: Firebase check email registered if Login via facebook and google
body: <p>I use firebase authentication and firebase database, i want to register every new user who login via fb and google.  this is the code i use to login :</p>
  
  <p><strong>FB Login</strong></p>
  
  <pre><code>// [START auth_with_facebook]
  private void handleFacebookAccessToken(AccessToken token) {
      Log.d(TAG, "handleFacebookAccessToken:" + token);
      // [START_EXCLUDE silent]
      showProgressDialog();
      // [END_EXCLUDE]
  
      AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
      mAuth.signInWithCredential(credential)
              .addOnCompleteListener(this, new OnCompleteListener&lt;AuthResult&gt;() {
                  @Override
                  public void onComplete(@NonNull Task&lt;AuthResult&gt; task) {
                      Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
  
                      // If sign in fails, display a message to the user. If sign in succeeds
  
                      // signed in user can be handled in the listener.
                      if (!task.isSuccessful()) {
                          Log.w(TAG, "signInWithCredential", task.getException());
                          Toast.makeText(MainActivity.this, "Authentication failed.",
                                  Toast.LENGTH_SHORT).show();
                      }
  
                      // [START_EXCLUDE]
                      hideProgressDialog();
                      // [END_EXCLUDE]
                  }
              });
  }
  // [END auth_with_facebook]
  </code></pre>
  
  <p><strong>Google</strong></p>
  
  <pre><code>// [START auth_with_google]
  private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
      Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
      // [START_EXCLUDE silent]
      showProgressDialog();
      // [END_EXCLUDE]
  
      AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
      mAuth.signInWithCredential(credential)
              .addOnCompleteListener(this, new OnCompleteListener&lt;AuthResult&gt;() {
                  @Override
                  public void onComplete(@NonNull Task&lt;AuthResult&gt; task) {
                      Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
  
                      // If sign in fails, display a message to the user. If sign in succeeds
  
                      if (!task.isSuccessful()) {
                          Log.w(TAG, "signInWithCredential", task.getException());
                          Toast.makeText(MainActivity.this, "Authentication failed.",
                                  Toast.LENGTH_SHORT).show();
                      }
                      // [START_EXCLUDE]
                      hideProgressDialog();
                      // [END_EXCLUDE]
                  }
              });
  }
  // [END auth_with_google]
  </code></pre>
  
  <p>all those code is in my mainActivity, so i also create auth listener :</p>
  
  <pre><code>// [START auth_state_listener]
      mAuthListener = new FirebaseAuth.AuthStateListener() {
          @Override
          public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
              FirebaseUser user = firebaseAuth.getCurrentUser();
              if (user != null) {
                  // User is signed in, 
                  // I WANT TO CHECK AND REGISTER NEW USER HERE  
  
  
  
                  Intent home = new Intent(MainActivity.this , HomeActivity.class);
                  startActivity(home);
                  Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
              } else {
                  // User is signed out
                  Log.d(TAG, "onAuthStateChanged:signed_out");
              }
              // [START_EXCLUDE]
  
              updateUI(user);
  
  
  
              // [END_EXCLUDE]
          }
      };
  </code></pre>
  
  <p>I still don't sure how to check if the user already registered, maybe something like, check if i have nodes that have the user email, because it means the email registered before.  if not registered yet, then i can call push , e.g:</p>
  
  <pre><code>String userId = mDatabase.push().getKey(); 
  mDatabase.child(userId).setValue(Newuser);
  </code></pre>