Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio、Firebase手机认证打开浏览器?_Android_Firebase_Authentication_Firebase Authentication - Fatal编程技术网

Android Studio、Firebase手机认证打开浏览器?

Android Studio、Firebase手机认证打开浏览器?,android,firebase,authentication,firebase-authentication,Android,Firebase,Authentication,Firebase Authentication,我正在尝试使用Firebase在我的应用程序中添加电话身份验证,当我单击“发送OTP”按钮时,一个浏览器正在打开,显示“验证您不是机器人”,只有在我通过选择图像验证我不是机器人后,它才会发送OTP OTP的格式也发生了变化 以前,OTP格式为 435325是MyApplication的验证码。 OTP的新格式是 789574如果您的myapplication.55b19.firebaseapp.com验证码 我只是不明白为什么每次我请求OTP时浏览器都会打开 这是我的密码 public类Mai

我正在尝试使用Firebase在我的应用程序中添加电话身份验证,当我单击“发送OTP”按钮时,一个浏览器正在打开,显示“验证您不是机器人”,只有在我通过选择图像验证我不是机器人后,它才会发送OTP

OTP的格式也发生了变化

以前,OTP格式为

435325是MyApplication的验证码。

OTP的新格式是

789574如果您的myapplication.55b19.firebaseapp.com验证码

我只是不明白为什么每次我请求OTP时浏览器都会打开

这是我的密码

public类MainActivity扩展了AppCompatActivity{
编辑文本电话网;
按钮登录,验证OTPBTN;
私有字符串验证组件系统;
私有FirebaseAuth FirebaseAuth;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth=firebaseAuth.getInstance();
phoneEt=findviewbyd(R.id.phoneEt);
otpEt=findViewById(R.id.otpEt);
loginBtn=findviewbyd(R.id.loginBtn);
verifyOTPBtn=findViewById(R.id.verifyOTPBtn);
loginBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串phoneNumber=phoneEt.getText().toString().trim();
sendotpcodeoser(电话号码);
}
});
verifyOTPBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串代码=otpEt.getText().toString().trim();
if(code.isEmpty()| code.length()<6){
设置错误(“错误的OTP…”);
请求焦点();
返回;
}
验证码(code);
}
});
}
私有void sendotpcodeoser(字符串电话号码){
PhoneAuthOptions选项=
PhoneAuthOptions.newBuilder(firebaseAuth)
.setPhoneNumber(“+91”+电话号码)//要验证的电话号码
.setTimeout(60L,TimeUnit.SECONDS)//超时和单位
.setActivity(this)//活动(用于回调绑定)
.setCallbacks(mCallbacks)//OnVerificationStateChangedCallbacks
.build();
PhoneAuthProvider.verifyPhoneNumber(选项);
}
私有PhoneAuthProvider.OnVerificationStateChangedCallbacks McCallbacks=新PhoneAuthProvider.OnVerificationStateChangedCallbacks(){
@凌驾
public void onCodeSent(@NonNull String s,@NonNull PhoneAuthProvider.ForceResendingToken ForceResendingToken){
超级OnCondent(s,forceResendingToken);
验证DebySystem=s;
}
@凌驾
public void onVerificationCompleted(@NonNull PhoneAuthCredential PhoneAuthCredential){
字符串代码=phoneAuthCredential.getSmsCode();
验证码(code);
}
@凌驾
public void onVerificationFailed(@NonNull FirebaseException e){
}
};
专用无效验证码(字符串码){
试一试{
PhoneAuthCredential credential=PhoneAuthProvider.getCredential(验证数据库系统,代码);
签名证书(凭证);
}捕获(例外e){
}
}
私有无效标志加密(PhoneAuthCredential凭证){
FirebaseAuth FirebaseAuth=FirebaseAuth.getInstance();
firebaseAuth.signInWithCredential(凭证)
.addOnCompleteListener(任务->{
if(task.issusccessful()){
Toast.makeText(MainActivity.this,“Success”,Toast.LENGTH_SHORT.show();
}否则{
Toast.makeText(MainActivity.this,“错误的OTP”,Toast.LENGTH_SHORT.show();
}
});
}

}
您必须在您的谷歌云控制台中启用安全网,以便使用手机身份验证。嘿,你们解决了这个问题吗?