#java #firebase #android-studio
#java #firebase #android-studio
Вопрос:
Я работал в проекте, все работало нормально. при написании кода я ввел метод «sendVerificationCode» и связал его с кнопкой, чтобы его можно было исключить, но он не сработал, когда я нажал на кнопку.
также у меня возникла проблема с тем, что длина номера телефона для запроса должна быть 10. но когда я ввел If statmernt, это не сработало.
кроме того, я не получаю никаких ошибок в журнале.
** Вот код: **
sPhoneNumber = findViewById(R.id.phoneNumberPrompt);
Code = findViewById(R.id.codePrompt);
mVerificationButton = findViewById(R.id.verificationButton);
mSignButton = findViewById(R.id.signButton);
mPhoneNumber = sPhoneNumber.getText().toString();
mCode = Code.getText().toString();
mVerificationButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
if (mPhoneNumber.length() != 10)
{
sPhoneNumber.setError("please make sure your number is right. ");
sPhoneNumber.requestFocus();
}
else
{
sendVerificationCode(mPhoneNumber);
sPhoneNumber.setError("Shit works");
sPhoneNumber.requestFocus();
// Log.d(Tag, mPhoneNumber);
}
}
});
mSignButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
verifyPhoneNumberWithCode(mVerificationId ,mCode);
}
});
}
private void verifyPhoneNumberWithCode(String verificationId, String aCode)
{
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, aCode);
signInWithPhoneAuthCredential(credential);
}
public void sendVerificationCode(String phoneNumber)
{
PhoneAuthProvider.getInstance().verifyPhoneNumber(
" 49" phoneNumber, // Phone number to verify
6, // Timeout duration
TimeUnit.SECONDS, // Unit of timeout
this, // Activity (for callback binding)
mCallbacks); // OnVerificationStateChangedCallbacks
}
Ответ №1:
Итак, я нашел ответ на свой вопрос для ant body, полученный здесь по тем же вопросам.
проблема заключалась в том, что строка mPhoneNumber не могла быть найдена позже, когда я нажал кнопку для отправки проверки, и когда я поместил сообщение if else, если не было найдено, поэтому я поставил mPhoneNumber = sPhoneNumber.getText().toString();
вместо этого из метода onCreate, я поместил его в метод onClick listner, который был в методе onCreate, так что этокод
sPhoneNumber = findViewById(R.id.phoneNumberPrompt);
Code = findViewById(R.id.codePrompt);
mVerificationButton = findViewById(R.id.verificationButton);
mSignButton = findViewById(R.id.signButton);
mCode = Code.getText().toString();
mVerificationButton.setOnClickListener(new View.OnClickListener()
{
mPhoneNumber = sPhoneNumber.getText().toString();
@Override
public void onClick(View view)
{
if (mPhoneNumber.length() != 10)
{
sPhoneNumber.setError("please make sure your number is right. ");
sPhoneNumber.requestFocus();
}
else
{
sendVerificationCode(mPhoneNumber);
sPhoneNumber.setError("Shit works");
sPhoneNumber.requestFocus();
// Log.d(Tag, mPhoneNumber);
}
}
});