flutter - 如何使用没有OTP的电话号码将用户注册到firebase?
问题描述
我正在尝试将带有电话号码的用户注册到 Firebase,但出现异常PlatformException(error, Cannot create PhoneAuthCredential without either verificationProof, sessionInfo, ortemprary proof., null)
是否可以仅使用电话号码注册用户而无需任何 OTP?
我试过下面的代码
signIn()async{
AuthCredential credential= PhoneAuthProvider.getCredential(
verificationId: verificationId,
smsCode: smsCode
);
await firebaseAuth.signInWithCredential(credential).then((user){
Navigator.of(context).pushReplacementNamed('/homepage');
print('signed in with phone number successful: user -> $user');
}).catchError((onError){
print(onError);
});
}
解决方案
该方法.signInWithCredential
(实际登录用户)需要凭据类型的参数,这些凭据要么由案例.verifyPhoneNumber
中的方法派生verificationCompleted
(仅在 Android 中,它不会发送短信并自动验证电话号码,请注意不总是工作,你应该总是有一个 UI 后备)或者在codeSent
它返回一个验证 ID 并发送 SMS 的情况下。这两个是你应该传递给函数的那个PhoneAuthProvider.getCredential
。
在第一种情况下,您不需要调用该PhoneAuthProvider.getCredential
方法,因为您已经有一个凭证对象。
推荐阅读
- laravel - Ordering laravel form::select by already selected values
- openshift - OpenShift 4.x and HELM
- go - 两个节点可以直接交换消息吗?
- c# - Create an extension method derived from ToDictionary()
- javascript - Bind Vue to associative array
- javascript - Highligligh particular areas based on X-axis data
- node.js - How to run cron in serverless for every minute?
- c# - 当用户使用 ASP.NET Core Identity 登录网站时,他在访问该网站的所有浏览器中都已登录
- laravel - Laravel 验证仅接受来自 api 的预定义值
- wpf - 如何避免网格控件中的焦点单元格颜色