如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户

Posted

技术标签:

【中文标题】如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户【英文标题】:How to enable firebase phone verification in flutter web ? I have tried many ways but it doesn't seems to work, SMS code need to be sent to the user 【发布时间】:2021-05-23 05:23:47 【问题描述】:

我想通过使用firebase发送OTP来实现电话验证,如何做到这一点? .我试过在github关注这个帖子,但是没有用,它没有帮助,signInwithphoneNumber 只登录用户而不通过发送短信 OTP 代码验证用户,如何解决这个问题?

Github 话题链接:https://github.com/flutter/flutter/issues/46021

当我实现时抛出以下错误:

Error: UnimplementedError: verifyPhoneNumber() is not supported on the web. Please use 
`signInWithPhoneNumber` instead.

谁能帮帮我!!!

【问题讨论】:

【参考方案1】:

你必须使用

FirebaseAuth auth = FirebaseAuth.instance;

// Wait for the user to complete the reCAPTCHA & for an SMS code to be sent.
ConfirmationResult confirmationResult = await auth.signInWithPhoneNumber('+44 7123 123 456');

然后这个来验证

UserCredential userCredential = await confirmationResult.confirm('123456');

您也可以根据自己的使用情况添加RecaptchaVerifier

ConfirmationResult confirmationResult = await auth.signInWithPhoneNumber('+44 7123 123 456', RecaptchaVerifier(
  container: 'recaptcha',
  size: RecaptchaVerifierSize.compact,
  theme: RecaptchaVerifierTheme.dark,
));

您还可以编辑验证码

RecaptchaVerifier(
  onSuccess: () => print('reCAPTCHA Completed!'),
  onError: (FirebaseAuthException error) => print(error),
  onExpired: () => print('reCAPTCHA Expired!'),
);

【讨论】:

以上是关于如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户

在 Flutter 导入错误中启用 Web

如何在 Flutter Web 中使用 Skia/CanvasKit?

Flutter - 如何在 android 中自动启用位置服务?

如何在 Flutter 中启用对现有项目的 Swift 支持

如何使用 flutter_webview 插件在 Flutter 中启用位置?