android 无Firebase的Flutter中的OTP验证

eiee3dmh  于 2023-05-05  发布在  Android
关注(0)|答案(2)|浏览(146)

在使用firebase flutter注册一个新用户后,输入电子邮件和密码。是否有任何方法来验证他的电话号码没有一个firebase电话身份验证,使同一用户将不会注册电子邮件/密码和电话号码(我想注册他一次使用他的电子邮件和密码,并验证他的电话号码)?

tjjdgumg

tjjdgumg1#

(目前该软件包已过期,不支持空值安全)

你可以尝试flutter_otp包,我认为这是最好的选择,访问flutter_otp 0.3.2了解更多信息。
试试下面的例子

import 'package:flutter/material.dart';
    import 'package:flutter_otp/flutter_otp.dart';

    // Now instantiate FlutterOtp class in order to call sendOtp function
    FlutterOtp otp = FlutterOtp();
    class SendOtp extends StatelessWidget {
       String phoneNumber = "93XXXXXXXX"; //enter your 10 digit number
       int minNumber = 1000;
       int maxNumber = 6000;
       String countryCode ="+91"; // give your country code if not it will take +1 as default

  
     @override
     Widget build(BuildContext context) {
       return Scaffold(
        appBar: AppBar(title: Text("send otp using flutter_otp ")),
        body: Container(
          child: Center(
            child: RaisedButton(
             child: Text("Send"),
             onPressed: () {
               // call sentOtp function and pass the parameters

            otp.sendOtp(phoneNumber, 'OTP is : pass the generated otp here ',
                minNumber, maxNumber, countryCode);
          },
        )),
      ),
    );
  }
}
0lvr5msh

0lvr5msh2#

你可以试试这个包:https://pub.dev/packages/flutter_otp
也有很多网站提供OTP SMS服务。

**提示:**您甚至可以使用Firebase Auth,因为它也适合您的情况。

在firebase中,您可以使用emailUser.getCurrentUser().linkWithCredential(phoneUserCredential)链接(类似于合并)通过电子邮件和电话创建的帐户
在这种情况下,您的应用将包含一个具有该电子邮件和电话的用户。
额外的好处是,你不想存储电话号码在一个单独的数据库。
链接两个帐户后,您只需使用user.displayNameuser.phoneNumber来获取您的电子邮件和电话。

参考:

https://firebase.google.com/docs/auth/android/account-linking
https://firebase.google.com/docs/auth/web/account-linking

相关问题