Not Receiving Fire base OTP message












0















I am new to Android development. I am not getting OTP message from Fire base but if I enter the code manually then it works. I am not sure why I am not getting text message. Your help is highly appreciated. I am not sure whether I am doing correctly sendVerificationcode method correctly or not.



Steps Completed:
1) I added GSON file to app directory
2) I added test phone number in the firebase console
3) I added SHA1 code to fire base
4) I added SMS permission in the Android manifest file.
5) I enabled firebase authentication in Android studio
6) I tried different phone numbers too



VerifyPhoneActivity.java
public class VerifyPhoneActivity extends AppCompatActivity {


private String verificationId;
private FirebaseAuth mAuth;
private ProgressBar progressBar;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify_phone);

mAuth = FirebaseAuth.getInstance();

progressBar = findViewById(R.id.progressbar);
editText = findViewById(R.id.editTextCode);

String phonenumber = getIntent().getStringExtra("phonenumber");
sendVerificationCode(phonenumber);

findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String code = editText.getText().toString().trim();

if (code.isEmpty() || code.length() < 6) {

editText.setError("Enter code...");
editText.requestFocus();
return;
}
verifyCode(code);
}
});

}

private void verifyCode(String code) {
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
signInWithCredential(credential);
}



private void signInWithCredential(PhoneAuthCredential credential) {
// private void signInWithCredential(PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {

Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

} else {
Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}

private void sendVerificationCode(String number) {
progressBar.setVisibility(View.VISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
number,
60,
TimeUnit.SECONDS,
TaskExecutors.MAIN_THREAD,
mCallBack
);

}

private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

@Override
public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
verificationId = s;
}

@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number"+code);
}

@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
};
}


Below code looks like not working:



@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
// String code="000000";
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number2"+code);
}









share|improve this question

























  • Did you check the stack trace?? getting any exception or anything?

    – Rakesh Kumar
    Nov 21 '18 at 7:04











  • 2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

    – terer erererr
    Nov 21 '18 at 9:32











  • Nothing useful error message.

    – terer erererr
    Nov 21 '18 at 9:32











  • remove super.onCodeSent(s, forceResendingToken); on onCodeSent

    – Rakesh Kumar
    Nov 21 '18 at 9:39











  • Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

    – terer erererr
    Nov 21 '18 at 9:48
















0















I am new to Android development. I am not getting OTP message from Fire base but if I enter the code manually then it works. I am not sure why I am not getting text message. Your help is highly appreciated. I am not sure whether I am doing correctly sendVerificationcode method correctly or not.



Steps Completed:
1) I added GSON file to app directory
2) I added test phone number in the firebase console
3) I added SHA1 code to fire base
4) I added SMS permission in the Android manifest file.
5) I enabled firebase authentication in Android studio
6) I tried different phone numbers too



VerifyPhoneActivity.java
public class VerifyPhoneActivity extends AppCompatActivity {


private String verificationId;
private FirebaseAuth mAuth;
private ProgressBar progressBar;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify_phone);

mAuth = FirebaseAuth.getInstance();

progressBar = findViewById(R.id.progressbar);
editText = findViewById(R.id.editTextCode);

String phonenumber = getIntent().getStringExtra("phonenumber");
sendVerificationCode(phonenumber);

findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String code = editText.getText().toString().trim();

if (code.isEmpty() || code.length() < 6) {

editText.setError("Enter code...");
editText.requestFocus();
return;
}
verifyCode(code);
}
});

}

private void verifyCode(String code) {
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
signInWithCredential(credential);
}



private void signInWithCredential(PhoneAuthCredential credential) {
// private void signInWithCredential(PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {

Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

} else {
Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}

private void sendVerificationCode(String number) {
progressBar.setVisibility(View.VISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
number,
60,
TimeUnit.SECONDS,
TaskExecutors.MAIN_THREAD,
mCallBack
);

}

private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

@Override
public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
verificationId = s;
}

@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number"+code);
}

@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
};
}


Below code looks like not working:



@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
// String code="000000";
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number2"+code);
}









share|improve this question

























  • Did you check the stack trace?? getting any exception or anything?

    – Rakesh Kumar
    Nov 21 '18 at 7:04











  • 2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

    – terer erererr
    Nov 21 '18 at 9:32











  • Nothing useful error message.

    – terer erererr
    Nov 21 '18 at 9:32











  • remove super.onCodeSent(s, forceResendingToken); on onCodeSent

    – Rakesh Kumar
    Nov 21 '18 at 9:39











  • Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

    – terer erererr
    Nov 21 '18 at 9:48














0












0








0


1






I am new to Android development. I am not getting OTP message from Fire base but if I enter the code manually then it works. I am not sure why I am not getting text message. Your help is highly appreciated. I am not sure whether I am doing correctly sendVerificationcode method correctly or not.



Steps Completed:
1) I added GSON file to app directory
2) I added test phone number in the firebase console
3) I added SHA1 code to fire base
4) I added SMS permission in the Android manifest file.
5) I enabled firebase authentication in Android studio
6) I tried different phone numbers too



VerifyPhoneActivity.java
public class VerifyPhoneActivity extends AppCompatActivity {


private String verificationId;
private FirebaseAuth mAuth;
private ProgressBar progressBar;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify_phone);

mAuth = FirebaseAuth.getInstance();

progressBar = findViewById(R.id.progressbar);
editText = findViewById(R.id.editTextCode);

String phonenumber = getIntent().getStringExtra("phonenumber");
sendVerificationCode(phonenumber);

findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String code = editText.getText().toString().trim();

if (code.isEmpty() || code.length() < 6) {

editText.setError("Enter code...");
editText.requestFocus();
return;
}
verifyCode(code);
}
});

}

private void verifyCode(String code) {
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
signInWithCredential(credential);
}



private void signInWithCredential(PhoneAuthCredential credential) {
// private void signInWithCredential(PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {

Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

} else {
Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}

private void sendVerificationCode(String number) {
progressBar.setVisibility(View.VISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
number,
60,
TimeUnit.SECONDS,
TaskExecutors.MAIN_THREAD,
mCallBack
);

}

private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

@Override
public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
verificationId = s;
}

@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number"+code);
}

@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
};
}


Below code looks like not working:



@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
// String code="000000";
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number2"+code);
}









share|improve this question
















I am new to Android development. I am not getting OTP message from Fire base but if I enter the code manually then it works. I am not sure why I am not getting text message. Your help is highly appreciated. I am not sure whether I am doing correctly sendVerificationcode method correctly or not.



Steps Completed:
1) I added GSON file to app directory
2) I added test phone number in the firebase console
3) I added SHA1 code to fire base
4) I added SMS permission in the Android manifest file.
5) I enabled firebase authentication in Android studio
6) I tried different phone numbers too



VerifyPhoneActivity.java
public class VerifyPhoneActivity extends AppCompatActivity {


private String verificationId;
private FirebaseAuth mAuth;
private ProgressBar progressBar;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify_phone);

mAuth = FirebaseAuth.getInstance();

progressBar = findViewById(R.id.progressbar);
editText = findViewById(R.id.editTextCode);

String phonenumber = getIntent().getStringExtra("phonenumber");
sendVerificationCode(phonenumber);

findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String code = editText.getText().toString().trim();

if (code.isEmpty() || code.length() < 6) {

editText.setError("Enter code...");
editText.requestFocus();
return;
}
verifyCode(code);
}
});

}

private void verifyCode(String code) {
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
signInWithCredential(credential);
}



private void signInWithCredential(PhoneAuthCredential credential) {
// private void signInWithCredential(PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {

Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

} else {
Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}

private void sendVerificationCode(String number) {
progressBar.setVisibility(View.VISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
number,
60,
TimeUnit.SECONDS,
TaskExecutors.MAIN_THREAD,
mCallBack
);

}

private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

@Override
public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
verificationId = s;
}

@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number"+code);
}

@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}
};
}


Below code looks like not working:



@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
String code = phoneAuthCredential.getSmsCode();
// String code="000000";
if (code != null) {
editText.setText(code);
verifyCode(code);
}

System.out.println("Hello Phone Number2"+code);
}






android android-studio kotlin kotlin-android-extensions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 '18 at 6:38







terer erererr

















asked Nov 20 '18 at 19:06









terer erererrterer erererr

15




15













  • Did you check the stack trace?? getting any exception or anything?

    – Rakesh Kumar
    Nov 21 '18 at 7:04











  • 2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

    – terer erererr
    Nov 21 '18 at 9:32











  • Nothing useful error message.

    – terer erererr
    Nov 21 '18 at 9:32











  • remove super.onCodeSent(s, forceResendingToken); on onCodeSent

    – Rakesh Kumar
    Nov 21 '18 at 9:39











  • Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

    – terer erererr
    Nov 21 '18 at 9:48



















  • Did you check the stack trace?? getting any exception or anything?

    – Rakesh Kumar
    Nov 21 '18 at 7:04











  • 2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

    – terer erererr
    Nov 21 '18 at 9:32











  • Nothing useful error message.

    – terer erererr
    Nov 21 '18 at 9:32











  • remove super.onCodeSent(s, forceResendingToken); on onCodeSent

    – Rakesh Kumar
    Nov 21 '18 at 9:39











  • Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

    – terer erererr
    Nov 21 '18 at 9:48

















Did you check the stack trace?? getting any exception or anything?

– Rakesh Kumar
Nov 21 '18 at 7:04





Did you check the stack trace?? getting any exception or anything?

– Rakesh Kumar
Nov 21 '18 at 7:04













2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

– terer erererr
Nov 21 '18 at 9:32





2018-11-21 02:24:09.543 1893-1907/system_process I/GnssLocationProvider: WakeLock released by handleMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@f7129de)

– terer erererr
Nov 21 '18 at 9:32













Nothing useful error message.

– terer erererr
Nov 21 '18 at 9:32





Nothing useful error message.

– terer erererr
Nov 21 '18 at 9:32













remove super.onCodeSent(s, forceResendingToken); on onCodeSent

– Rakesh Kumar
Nov 21 '18 at 9:39





remove super.onCodeSent(s, forceResendingToken); on onCodeSent

– Rakesh Kumar
Nov 21 '18 at 9:39













Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

– terer erererr
Nov 21 '18 at 9:48





Disabled this line but still I didn't receive the OTP number. //super.onCodeSent(s, forceResendingToken);

– terer erererr
Nov 21 '18 at 9:48












1 Answer
1






active

oldest

votes


















0














Use like this following:



onCreate



mAuth = FirebaseAuth.getInstance();
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks()
{

@Override
public void onVerificationCompleted(PhoneAuthCredential credential)
{
// This callback will be invoked in two situations:
// 1 - Instant verification. In some cases the phone number can be instantly
// verified without needing to send or enter a verification code.
// 2 - Auto-retrieval. On some devices Google Play services can automatically
// detect the incoming verification SMS and perform verificaiton without
// user action.
Log.d(TAG, "onVerificationCompleted:" + credential);

Log.e("number","credential=-=-=>>><<>>>signInWithPhoneAuthCredential-->>");
signInWithPhoneAuthCredential(credential);

}
@Override
public void onVerificationFailed(FirebaseException e)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
Log.e(TAG, "onVerificationFailed", e);

// Show a message and update the UI
// ...
}



@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token)
{

// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
Log.e(TAG, "onCodeSent:" + verificationId+"<<token>>"+token);

// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;

//mResendToken = token;

// ...
}
};

//String phoneNumber=Settings.PREFIX + Settings.PREFIX_PHONE;

String phoneNumber="your phone number with prefix";

Log.e("number","credential=-=-=>>>22222>>"+phoneNumber);

if(phoneNumber!=null && !phoneNumber.isEmpty())
{
startPhoneNumberVerification(phoneNumber);
}


Method:



private void startPhoneNumberVerification(String phoneNumber)
{
Log.e("startPhoneNumber","startPhoneNumberVerification------>>"+phoneNumber);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
Log.e("startPhoneNumber","startPhoneNumberVerification--2222222---->>"+phoneNumber);
}


Method:



private void signInWithPhoneAuthCredential(PhoneAuthCredential credential)
{
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
// Sign in success, update UI with the signed-in user's information
Log.e(TAG, "signInWithCredential:success");



} else
{
// Sign in failed, display a message and update the UI
Log.e(TAG, "signInWithCredential:failure", task.getException());
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException)
{

}
}
}
});
}





share|improve this answer
























  • I compared your code and my code both looks same but still not sure why the method is invoked.

    – terer erererr
    Nov 21 '18 at 10:21











  • Which method not invoked in this code? Did you give that try??

    – Rakesh Kumar
    Nov 21 '18 at 10:23











  • @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

    – terer erererr
    Nov 21 '18 at 10:33











  • this method is having issue now.

    – terer erererr
    Nov 21 '18 at 10:33











  • Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

    – Rakesh Kumar
    Nov 21 '18 at 10:37













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53399881%2fnot-receiving-fire-base-otp-message%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Use like this following:



onCreate



mAuth = FirebaseAuth.getInstance();
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks()
{

@Override
public void onVerificationCompleted(PhoneAuthCredential credential)
{
// This callback will be invoked in two situations:
// 1 - Instant verification. In some cases the phone number can be instantly
// verified without needing to send or enter a verification code.
// 2 - Auto-retrieval. On some devices Google Play services can automatically
// detect the incoming verification SMS and perform verificaiton without
// user action.
Log.d(TAG, "onVerificationCompleted:" + credential);

Log.e("number","credential=-=-=>>><<>>>signInWithPhoneAuthCredential-->>");
signInWithPhoneAuthCredential(credential);

}
@Override
public void onVerificationFailed(FirebaseException e)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
Log.e(TAG, "onVerificationFailed", e);

// Show a message and update the UI
// ...
}



@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token)
{

// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
Log.e(TAG, "onCodeSent:" + verificationId+"<<token>>"+token);

// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;

//mResendToken = token;

// ...
}
};

//String phoneNumber=Settings.PREFIX + Settings.PREFIX_PHONE;

String phoneNumber="your phone number with prefix";

Log.e("number","credential=-=-=>>>22222>>"+phoneNumber);

if(phoneNumber!=null && !phoneNumber.isEmpty())
{
startPhoneNumberVerification(phoneNumber);
}


Method:



private void startPhoneNumberVerification(String phoneNumber)
{
Log.e("startPhoneNumber","startPhoneNumberVerification------>>"+phoneNumber);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
Log.e("startPhoneNumber","startPhoneNumberVerification--2222222---->>"+phoneNumber);
}


Method:



private void signInWithPhoneAuthCredential(PhoneAuthCredential credential)
{
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
// Sign in success, update UI with the signed-in user's information
Log.e(TAG, "signInWithCredential:success");



} else
{
// Sign in failed, display a message and update the UI
Log.e(TAG, "signInWithCredential:failure", task.getException());
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException)
{

}
}
}
});
}





share|improve this answer
























  • I compared your code and my code both looks same but still not sure why the method is invoked.

    – terer erererr
    Nov 21 '18 at 10:21











  • Which method not invoked in this code? Did you give that try??

    – Rakesh Kumar
    Nov 21 '18 at 10:23











  • @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

    – terer erererr
    Nov 21 '18 at 10:33











  • this method is having issue now.

    – terer erererr
    Nov 21 '18 at 10:33











  • Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

    – Rakesh Kumar
    Nov 21 '18 at 10:37


















0














Use like this following:



onCreate



mAuth = FirebaseAuth.getInstance();
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks()
{

@Override
public void onVerificationCompleted(PhoneAuthCredential credential)
{
// This callback will be invoked in two situations:
// 1 - Instant verification. In some cases the phone number can be instantly
// verified without needing to send or enter a verification code.
// 2 - Auto-retrieval. On some devices Google Play services can automatically
// detect the incoming verification SMS and perform verificaiton without
// user action.
Log.d(TAG, "onVerificationCompleted:" + credential);

Log.e("number","credential=-=-=>>><<>>>signInWithPhoneAuthCredential-->>");
signInWithPhoneAuthCredential(credential);

}
@Override
public void onVerificationFailed(FirebaseException e)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
Log.e(TAG, "onVerificationFailed", e);

// Show a message and update the UI
// ...
}



@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token)
{

// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
Log.e(TAG, "onCodeSent:" + verificationId+"<<token>>"+token);

// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;

//mResendToken = token;

// ...
}
};

//String phoneNumber=Settings.PREFIX + Settings.PREFIX_PHONE;

String phoneNumber="your phone number with prefix";

Log.e("number","credential=-=-=>>>22222>>"+phoneNumber);

if(phoneNumber!=null && !phoneNumber.isEmpty())
{
startPhoneNumberVerification(phoneNumber);
}


Method:



private void startPhoneNumberVerification(String phoneNumber)
{
Log.e("startPhoneNumber","startPhoneNumberVerification------>>"+phoneNumber);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
Log.e("startPhoneNumber","startPhoneNumberVerification--2222222---->>"+phoneNumber);
}


Method:



private void signInWithPhoneAuthCredential(PhoneAuthCredential credential)
{
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
// Sign in success, update UI with the signed-in user's information
Log.e(TAG, "signInWithCredential:success");



} else
{
// Sign in failed, display a message and update the UI
Log.e(TAG, "signInWithCredential:failure", task.getException());
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException)
{

}
}
}
});
}





share|improve this answer
























  • I compared your code and my code both looks same but still not sure why the method is invoked.

    – terer erererr
    Nov 21 '18 at 10:21











  • Which method not invoked in this code? Did you give that try??

    – Rakesh Kumar
    Nov 21 '18 at 10:23











  • @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

    – terer erererr
    Nov 21 '18 at 10:33











  • this method is having issue now.

    – terer erererr
    Nov 21 '18 at 10:33











  • Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

    – Rakesh Kumar
    Nov 21 '18 at 10:37
















0












0








0







Use like this following:



onCreate



mAuth = FirebaseAuth.getInstance();
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks()
{

@Override
public void onVerificationCompleted(PhoneAuthCredential credential)
{
// This callback will be invoked in two situations:
// 1 - Instant verification. In some cases the phone number can be instantly
// verified without needing to send or enter a verification code.
// 2 - Auto-retrieval. On some devices Google Play services can automatically
// detect the incoming verification SMS and perform verificaiton without
// user action.
Log.d(TAG, "onVerificationCompleted:" + credential);

Log.e("number","credential=-=-=>>><<>>>signInWithPhoneAuthCredential-->>");
signInWithPhoneAuthCredential(credential);

}
@Override
public void onVerificationFailed(FirebaseException e)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
Log.e(TAG, "onVerificationFailed", e);

// Show a message and update the UI
// ...
}



@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token)
{

// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
Log.e(TAG, "onCodeSent:" + verificationId+"<<token>>"+token);

// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;

//mResendToken = token;

// ...
}
};

//String phoneNumber=Settings.PREFIX + Settings.PREFIX_PHONE;

String phoneNumber="your phone number with prefix";

Log.e("number","credential=-=-=>>>22222>>"+phoneNumber);

if(phoneNumber!=null && !phoneNumber.isEmpty())
{
startPhoneNumberVerification(phoneNumber);
}


Method:



private void startPhoneNumberVerification(String phoneNumber)
{
Log.e("startPhoneNumber","startPhoneNumberVerification------>>"+phoneNumber);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
Log.e("startPhoneNumber","startPhoneNumberVerification--2222222---->>"+phoneNumber);
}


Method:



private void signInWithPhoneAuthCredential(PhoneAuthCredential credential)
{
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
// Sign in success, update UI with the signed-in user's information
Log.e(TAG, "signInWithCredential:success");



} else
{
// Sign in failed, display a message and update the UI
Log.e(TAG, "signInWithCredential:failure", task.getException());
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException)
{

}
}
}
});
}





share|improve this answer













Use like this following:



onCreate



mAuth = FirebaseAuth.getInstance();
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks()
{

@Override
public void onVerificationCompleted(PhoneAuthCredential credential)
{
// This callback will be invoked in two situations:
// 1 - Instant verification. In some cases the phone number can be instantly
// verified without needing to send or enter a verification code.
// 2 - Auto-retrieval. On some devices Google Play services can automatically
// detect the incoming verification SMS and perform verificaiton without
// user action.
Log.d(TAG, "onVerificationCompleted:" + credential);

Log.e("number","credential=-=-=>>><<>>>signInWithPhoneAuthCredential-->>");
signInWithPhoneAuthCredential(credential);

}
@Override
public void onVerificationFailed(FirebaseException e)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
Log.e(TAG, "onVerificationFailed", e);

// Show a message and update the UI
// ...
}



@Override
public void onCodeSent(String verificationId,
PhoneAuthProvider.ForceResendingToken token)
{

// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
Log.e(TAG, "onCodeSent:" + verificationId+"<<token>>"+token);

// Save verification ID and resending token so we can use them later
mVerificationId = verificationId;

//mResendToken = token;

// ...
}
};

//String phoneNumber=Settings.PREFIX + Settings.PREFIX_PHONE;

String phoneNumber="your phone number with prefix";

Log.e("number","credential=-=-=>>>22222>>"+phoneNumber);

if(phoneNumber!=null && !phoneNumber.isEmpty())
{
startPhoneNumberVerification(phoneNumber);
}


Method:



private void startPhoneNumberVerification(String phoneNumber)
{
Log.e("startPhoneNumber","startPhoneNumberVerification------>>"+phoneNumber);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phoneNumber, // Phone number to verify
60, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
Log.e("startPhoneNumber","startPhoneNumberVerification--2222222---->>"+phoneNumber);
}


Method:



private void signInWithPhoneAuthCredential(PhoneAuthCredential credential)
{
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
// Sign in success, update UI with the signed-in user's information
Log.e(TAG, "signInWithCredential:success");



} else
{
// Sign in failed, display a message and update the UI
Log.e(TAG, "signInWithCredential:failure", task.getException());
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException)
{

}
}
}
});
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 21 '18 at 10:12









Rakesh KumarRakesh Kumar

352212




352212













  • I compared your code and my code both looks same but still not sure why the method is invoked.

    – terer erererr
    Nov 21 '18 at 10:21











  • Which method not invoked in this code? Did you give that try??

    – Rakesh Kumar
    Nov 21 '18 at 10:23











  • @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

    – terer erererr
    Nov 21 '18 at 10:33











  • this method is having issue now.

    – terer erererr
    Nov 21 '18 at 10:33











  • Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

    – Rakesh Kumar
    Nov 21 '18 at 10:37





















  • I compared your code and my code both looks same but still not sure why the method is invoked.

    – terer erererr
    Nov 21 '18 at 10:21











  • Which method not invoked in this code? Did you give that try??

    – Rakesh Kumar
    Nov 21 '18 at 10:23











  • @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

    – terer erererr
    Nov 21 '18 at 10:33











  • this method is having issue now.

    – terer erererr
    Nov 21 '18 at 10:33











  • Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

    – Rakesh Kumar
    Nov 21 '18 at 10:37



















I compared your code and my code both looks same but still not sure why the method is invoked.

– terer erererr
Nov 21 '18 at 10:21





I compared your code and my code both looks same but still not sure why the method is invoked.

– terer erererr
Nov 21 '18 at 10:21













Which method not invoked in this code? Did you give that try??

– Rakesh Kumar
Nov 21 '18 at 10:23





Which method not invoked in this code? Did you give that try??

– Rakesh Kumar
Nov 21 '18 at 10:23













@Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

– terer erererr
Nov 21 '18 at 10:33





@Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { Log.d(TAG,"onVerificationCompleted:" + phoneAuthCredential); String code = phoneAuthCredential.getSmsCode(); // String code="000000"; if (code != null) { editText.setText(code); // verifyCode(code); signInWithCredential(phoneAuthCredential); System.out.println("Hello Phone Number2"+code); } }

– terer erererr
Nov 21 '18 at 10:33













this method is having issue now.

– terer erererr
Nov 21 '18 at 10:33





this method is having issue now.

– terer erererr
Nov 21 '18 at 10:33













Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

– Rakesh Kumar
Nov 21 '18 at 10:37







Have you tried this code that I shared above??? was that worked for you?? Are you getting the exception of firebase or any other exception???

– Rakesh Kumar
Nov 21 '18 at 10:37






















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53399881%2fnot-receiving-fire-base-otp-message%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)