短信验证码请求失败:未知状态码:17499 BILLING_NOT_ENABLED

问题描述 投票:0回答:1

我已经在我的 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 身份验证。

android firebase firebase-authentication
1个回答
0
投票

“从 2024 年 9 月开始,为了提高电话身份验证的安全性和服务质量,Firebase 项目必须链接到 Cloud Billing 帐户才能启用和使用 SMS 服务。”来自 Firebase 常见问题解答

他们最近向客户发送通知,我们不再支持 Spark 套餐中的短信,如果您需要继续使用短信,则需要升级到 Blaze 套餐定价计划

新的电话身份验证政策:“从 2024 年 8 月 1 日开始,所有使用 Firebase 电话身份验证 (SMS) 的项目都必须链接到云结算帐户”。 因此现在需要将订阅计划升级到 Blaze 才能为您的项目使用电话身份验证

你需要做什么:

如果您计划启用电话身份验证或当前已启用电话身份验证,请将您的项目链接到 Cloud Billing 帐户。通过将您的 Firebase 项目链接到 Cloud Billing 帐户,该项目将能够访问更多服务和更高的使用级别,如按需付费 Blaze 计划中所述。

从现在开始,所有使用 Firebase 电话身份验证 (SMS) 的项目都必须链接到 Cloud Billing 帐号。此外,Blaze 计划中仍然有每天免费发送 10 条短信的配额。只有超过此限额后,才会产生适用于电话验证的任何费用。

© www.soinside.com 2019 - 2024. All rights reserved.