dart 在Flutter中的对话中创建Firebase OTP认证

e3bfsja2  于 2023-11-14  发布在  Flutter
关注(0)|答案(1)|浏览(105)

我在一个巨大的项目工作,在它我必须创建一个firebase的otp身份验证登录页面中的adsearch。dart文件中的对话框,然后我们需要在一个名为userAuthentication的函数调用它也在adsearch。dart文件。她移动的号码,然后它将在他的移动的SMS中发送OTP,然后用户将被引导到第二页面,在第二页面中用户将输入用户在他的SMS上接收的OTP,如果是正确的,则用户将登录到应用程序中并在页面中移动如果用户输入了错误的号码,则它将给予错误,并且用户还可以选择重新发送OTP,并且可以选择返回用户输入了错误的号码并且他希望该号码改变
我试着重新解释,但找不到解决办法。

epggiuax

epggiuax1#

你可以有一个按钮来触发消息。Firebase Auth文档指定verifyPhoneNumber()方法有四个不同的回调,其中一个是codeSent。这个回调可以用来将用户导航到第二个屏幕。
就像这样:

FirebaseAuth auth = FirebaseAuth.instance;

await auth.verifyPhoneNumber(
  phoneNumber: '+44 7123 123 456',
  codeSent: (String verificationId, int? resendToken) async { <- This will be executed when after the message is sent
    // here you'll navigate the users to the second screen! (you must pass the `verificationId` as a parameter to the following screen)
   
  },
);

字符串
在另一个屏幕上...

FirebaseAuth auth = FirebaseAuth.instance;

 // you should have a method which will be called once the user entered the received code...

Future<void> logIn(String smsCode ) async { <- value entered by the user
    // Create a PhoneAuthCredential with the code
  PhoneAuthCredential credential = PhoneAuthProvider.credential(verificationId: widget.verificationId, smsCode: smsCode);
    
  //Sign the user in (or link) with the credential
  await auth.signInWithCredential(credential);
}


希望这对你有帮助!

相关问题