我面临着不同类型的问题。我正在我的应用程序中使用Firebase手机号码认证。当我试图将OTP发送到我使用的同一个手机号码时,OTP不会发送。然而,如果我从我的手机向其他手机发送OTP,则OTP正在发送。我还发现,如果我从另一个手机发送OTP到我的号码,OTP就来了。因此没有手机号码的问题。调试时,我发现这个代码块不起作用
@Override
public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(verificationId, forceResendingToken);
Log.e(TAG, "onCodeSent: s - " + verificationId + " : t - " + forceResendingToken);
xVerificationId = verificationId;
}
对于其他数字,它正在工作,验证和forceResendingToken正在生成。
如前所述,电话号码将通过以下两种方式自动验证:
这就是为什么oncodesnt()
不起作用的原因。
现在,为了解决这个问题,您将需要实现onVerficationComplted()
,大多数情况下,您已经实现了它,但您不知道里面放了什么。
如果你是在onVerficationComplted()里面,那么你可能没有OTP,但你肯定有phoneAuthCredential
,你只需要把这个变量传递给mAuth.signInSusCredential()
,这应该会导致你想要的输出。
示例代码:
@Override
public void onVerificationCompleted(@NonNull PhoneAuthCredential phoneAuthCredential) {
Toast.makeText(getApplicationContext(),"Verifying code Automatically",LENGTH_LONG).show();
signInWithCredential(phoneAuthCredential);
}
示例代码:
private void signInWithCredential(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.d(TAG, "signInWithCredential:success");
} else {
// Sign in failed, display a message and update the UI
// Log.w(TAG, "signInWithCredential:failure", task.getException());
}
}
}
});
}
您是否在验证完成后实施?在以下两种情况下,不会发送OTP,如中所述https://firebase.google.com/docs/auth/android/phone-auth:
即时验证:无需发送OTP即可即时验证电话号码
在这种情况下,您将直接获得PhoneAuthCredential。
如果您在Firebase下的测试中添加了您的电话号码(登录方法-
我正在开发一个应用程序,该应用程序具有获取OTP的功能,并且我使用了firebase OTP功能(使用手机号码在Android上与firebase进行身份验证),但不幸的是,有时我会面临这样的问题,比如我没有从firebase获得OTP,同时它也没有给出任何错误。我不知道我犯了什么错。需要帮助来解决这个问题,我也尝试了一些样本,它工作正常,但当我试图在我的项目中集成firebase是不是发送otp
我正在制作一个工作应用程序,目的是为Android Studio中使用Java的用户提供一个门户。我已经设置了Firebase云消息传递、身份验证和一个实时数据库来存储用户。我可以很容易地从云控制台发出推送通知,但我在想,有没有一种方法可以在不使用控制台的情况下,将推送通知发送到所有设备? 我的理由是,我不希望有人在人力资源意外删除一个用户,但我希望他们能够发送推送通知的情况,如关闭。有没有办法做
我在科特林是新来的。试图通过firebase phone auth发送短信,但我得到了
我正在尝试从 AWS SNS 服务向我的印度号码发送短信通知。在互联网上搜索此内容时,许多人在他们的帖子中提到,SMS服务仅适用于美国的手机。 但是在阅读SNS文档时,我发现印度在受支持的地区。 我在SNS中创建了一个主题并为我的手机号码创建了SMS订阅,但我没有得到订阅链接。 我不知道我的理解是否正确。对此有什么想法吗? 我试着通过AWS Cli命令和boto3发送它..我得到了成功密码,但我没
我想从我的流星应用程序编程发送短信/短信;许多人为此推荐twilio,有几个Meteor twilio包(可通过大气和/或谷歌/绑定找到)。我不知道这些软件包中是否有一个比另一个更好,但至少现在,我使用的是Abhiaayer:meteor-twilio软件包。 我担心的是,当您创建Twilio帐户时,他们会给您分配一个“发件人”电话号码(显然,您不能使用自己的电话号码)。也许我误解了这是如何工作的
我将我的应用程序从使用数字电话身份验证迁移到了新的Firebase电话身份验证,但是当我测试我的应用程序时,我在注销我的用户时遇到了麻烦(已经修复了这个问题),所以我就把它从控制台的“用户列表”中删除了,但是现在每次我尝试用那个电话号码登录时,它不会给我发送带有代码的短信,除了这个号码之外,其他任何号码都能正常工作。有人知道我该怎么解决吗?