Skip to content Skip to sidebar Skip to footer

How Can I Check If The Phone Number Already Exists In The Firebase Authentication?

I have used the firebase authentication with phone number in my android app. But firebase doesn't give different functions for sign in and sign up like the email password authentic

Solution 1:

What you can do in this case is that, store the phone number of every signed up user in the phone node of your Firebase database.

Then when signing a new user from a phone number, you can run a check in your phone node, that wether the phone number exists or not.

To store the phone number in a node named phone in your database, you can use a code like this:

privatevoidsignInWithPhoneAuthCredential(PhoneAuthCredential credential){
        mAuth.signInWithCredential(credential).addOnCompleteListener(this, newOnCompleteListener<AuthResult>() {
            @OverridepublicvoidonComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()){
                   // you may be using a signIn with phone number like this, now here you can save the phone number in your databaseDatabaseReferenceref= FirebaseDatabase.getInstance().getReference().child("phone");

                 ref.child(phoneNumber).setValue(phoneNumber);

                }
                elseif(task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                        Toast.makeText(MainActivity.this, "OTP is incorrect", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

In the above code, phoneNumber is the number of the user you're signing up. Also I have used the heading name and value same, and that is, phoneNumber itself. You can use a name or anything else, you want.

Now when you're signing up a new user, you should run a check in your phone node in your database, using the following piece of code. You can add instance to this new method in the code above.

booleancheckForPhoneNumber(String number){
  DatabaseReferenceref= FirebaseDatabase.getInstance().getReference();

  ref.orderByChild("phone").equalTo(number).addListenerForSingleValueEvent(newValueEventListener() {
                    @OverridepublicvoidonDataChange(@NonNull DataSnapshot dataSnapshot) {
                        if(dataSnapshot.exists())
                          returntrue;
                        elsereturnfalse;
                    }

                    @OverridepublicvoidonCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

}                

Post a Comment for "How Can I Check If The Phone Number Already Exists In The Firebase Authentication?"