【问题标题】:How to set and confirm password for google account using flutter and firebase如何使用flutter和firebase设置和确认谷歌账户的密码
【发布时间】:2021-09-18 12:39:20
【问题描述】:

我想让用户自己设置密码,并通过点击使用谷歌注册来确认密码。该按钮只会将他们的谷歌帐户电子邮件作为电子邮件,用户必须自己设置密码。

注册屏幕 -

SignInButton(
            onPressed: () {
              signInWithGoogle();
              Navigator.push(
                context,
                MaterialPageRoute(
                  builder: (context) => TasksScreen(),
                ),
              );
            },
            btnText: 'Sign up with Google',
            btnTextColor: Colors.blue,
            buttonType: ButtonType.google,
            buttonSize: ButtonSize.medium,
          ),
        ],
      ),

signInWithGoogle -

Future<UserCredential> signInWithGoogle() async {
  // Trigger the authentication flow
  final GoogleSignInAccount googleUser = await GoogleSignIn().signIn();

  // Obtain the auth details from the request
  final GoogleSignInAuthentication googleAuth = await googleUser.authentication;

  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

【问题讨论】:

  • 附上代码而不是代码图像是击球手。

标签: firebase flutter firebase-authentication google-authentication


【解决方案1】:

如果您使用 google 登录,则无法手动输入密码。这就是使用 Thord 派对登录背后的想法。

如果您想手动完成,请使用 firebase 的其他登录方法。比如使用电子邮件和密码登录。您还可以通过在注册时发送验证链接来验证电子邮件。

Firebase 仅向您提供电子邮件和密码(或其他 sinup 登录过程),但不提供密码确认。确认密码请自行管理。

您可以通过检查密码和确认密码是否相同来实现自己的逻辑。

如果两者相同,那么您应该继续使用 firebase 登录或注册功能,如果不同,则显示错误消息或验证。

例如

  final TextEditingController _passwordController = TextEditingController();
  final TextEditingController _confirmPasswordController = TextEditingController();

  if (_passwordController.text == _confirmPasswordController.text) {
    // your login or sign up function with firebase
  } else {
    // password is not matching with confirm password,
    // show error message or validation
  }

【讨论】:

  • 我可以让用户为任何经过验证的电子邮件设置自己的密码吗?
  • 邮箱验证只是验证输入的邮箱是否正确。如果正确,那么您可以登录到您的邮件并通过单击它来验证验证链接。无论您在注册期间在 Firebase 上设置了什么密码。
  • 首先使用firebase创建用户(使用您自己的电子邮件和您想要的任何密码),然后如果您只想验证电子邮件,则可以发送电子邮件验证链接。
  • 你可以使用FirebaseAuth.instance.createUserWithEmailAndPassword(email: email, password: password)作为密码你可以选择任何你想要的
猜你喜欢
  • 2015-03-21
  • 2020-04-29
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
  • 2020-05-07
  • 2018-03-23
相关资源
最近更新 更多