我已使用电话身份验证通过firebase_auth对用户进行身份验证,并成功取回了Firebase用户。我想让用户返回到应用程序时通过身份验证。我该怎么做?它在Android上完美运行,但是当我关闭IOS应用程序时,我被重定向到输入OTP的页面,并且OTP再次发送到我先前登录的手机号码。在Android中,这些步骤已由Google跳过和管理,但是我很难用IOS来解决问题。 我已经执行了https://firebase.google.com/docs/auth/ios/phone-auth中的步骤,包括在info.plist中设置APN和反向客户端!从几天开始,我就被这些事情困扰。请帮忙 我保存登录类型选项,并在用户登录后重新启动应用程序时触发以下代码:
Future (BuildContext context, String phoneNumber) async {
final FirebaseAuth _auth = FirebaseAuth.instance;
await _auth.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: Duration(seconds: 0),
verificationCompleted: (authCredential) =>
_verificationComplete(authCredential, context),
verificationFailed: (authException) =>
_verificationFailed(authException, context),
codeAutoRetrievalTimeout: null,
codeSent: (verificationId, [code]) => _smsCodeSent(
verificationId: verificationId,
code: [code],
context: context,
phoneNumber: phoneNumber));
}
_verificationComplete(AuthCredential authCredential, BuildContext context) {
FirebaseAuth.instance.signInWithCredential(authCredential);
if (!smsCodeSent) handleLogin(context, authCredential);
}
_verificationFailed(AuthException authException, BuildContext context) {
Navigator.of(context).pushNamedAndRemoveUntil(
AuthPage.routeName, (Route<dynamic> route) => false);
}
_smsCodeSent(
{String verificationId,
List<int> code,
BuildContext context,
String phoneNumber}) {
smsCodeSent = true;
_smsVerificationCode = verificationId;
smsOTPDialog(context, phoneNumber);
}
smsOTPDialog(BuildContext context, String userPhoneNumber) {
Navigator.of(context)
.push(_createRoute(userPhoneNumber, _smsVerificationCode));
}