我已经在我的 Android 应用程序中实现了 Firebase 身份验证。我想使用 OTP 验证来实现身份验证,但是当我尝试使用 OTP 进行身份验证时,它不会发送 OTP。我收到的不是 OTP,而是错误:
[SmsRetrieverHelper]短信验证码请求失败:未知状态码:17499 BILLING_NOT_ENABLED
我是android开发新手,我设置了
minSdk
和targetSdk
。还在我的 Firebase 控制台中添加 SHA 1 密钥和 SHA 256。
这是我的代码
SendOTPActivity.java
:
public void onClick(View view) {
if (inputMobile.getText().toString().trim().isEmpty()) {
Toast.makeText(SendOTPActivity.this, "Enter Mobile", Toast.LENGTH_SHORT).show();
return;
}
progressBar.setVisibility(View.VISIBLE);
buttonGetOTP.setVisibility(View.INVISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
PhoneAuthOptions.newBuilder(FirebaseAuth.getInstance())
.setPhoneNumber("+91" + inputMobile.getText().toString()) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(SendOTPActivity.this) // Activity for callback binding
.setCallbacks(new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(@NonNull PhoneAuthCredential phoneAuthCredential) {
progressBar.setVisibility(View.GONE);
buttonGetOTP.setVisibility(View.VISIBLE);
}
@Override
public void onVerificationFailed(@NonNull FirebaseException e) {
progressBar.setVisibility(View.GONE);
buttonGetOTP.setVisibility(View.VISIBLE);
Toast.makeText(SendOTPActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onCodeSent(@NonNull String verificationId, @NonNull PhoneAuthProvider.ForceResendingToken forceResendingToken) {
progressBar.setVisibility(View.GONE);
buttonGetOTP.setVisibility(View.VISIBLE);
Intent intent = new Intent(getApplicationContext(), VerifyOTPActivity.class);
intent.putExtra("mobile",inputMobile.getText().toString());
intent.putExtra("verificationId",verificationId);
startActivity(intent);
}
}).build()
);
}
我希望在没有计费帐户的真实 Android 设备上进行 OTP 验证。由于我是 Android 开发新手,我想学习使用 OTP 进行 Firebase 身份验证。
“从 2024 年 9 月开始,为了提高电话身份验证的安全性和服务质量,Firebase 项目必须链接到 Cloud Billing 帐户才能启用和使用短信服务。”来自 Firebase 常见问题解答。
他们最近向客户发送通知,我们不再支持 Spark 计划中的短信,如果您需要继续使用短信,则需要升级到 Blaze 计划定价计划。
新的电话身份验证政策:“从 2024 年 8 月 1 日开始,所有使用 Firebase 电话身份验证 (SMS) 的项目都必须链接到云结算帐户”。 因此现在需要将订阅计划升级到 Blaze 才能为您的项目使用电话身份验证。
你需要做什么:
如果您计划启用电话身份验证或当前已启用电话身份验证,请将您的项目链接到 Cloud Billing 帐户。通过将您的 Firebase 项目链接到 Cloud Billing 帐户,该项目将能够访问更多服务和更高的使用级别,如按需付费 Blaze 计划中所述。
从现在开始,所有使用 Firebase 电话身份验证 (SMS) 的项目都必须链接到 Cloud Billing 帐号。此外,Blaze 计划中仍然有每天免费发送 10 条短信的配额。只有超过此限额后,才会产生适用于电话验证的任何费用。