Как установить и подтвердить пароль для учетной записи Google с помощью flutter и firebase

# #firebase #flutter #firebase-authentication #google-authentication

Вопрос:

Я хочу, чтобы пользователи могли ввести свой собственный пароль и подтвердить пароль, нажав «Зарегистрироваться в Google». Кнопка просто примет адрес электронной почты их учетной записи Google в качестве адреса электронной почты, и пользователи должны будут ввести свои собственные пароли.

Экран регистрации —

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

Подпишись с помощью Google —

 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);
}
 

Комментарии:

1. Это тесто для прикрепления кода вместо изображений кода.

Ответ №1:

Если вы используете вход в систему с помощью Google, то вы не можете ввести пароль вручную. В этом и заключается идея входа в систему с помощью Thord party.

Если вы хотите сделать это вручную, используйте другой метод входа в firebase. например, войдите в систему с помощью электронной почты и пароля. Вы также можете проверить электронную почту, отправив ссылку для подтверждения при регистрации.

Firebase предоставляет вам только электронную почту и пароль (или другой процесс входа в систему), но не подтверждает пароль. Для подтверждения пароля вы должны управлять им самостоятельно.

Вы можете реализовать свою собственную логику, проверив пароль и подтвердив, что пароль совпадает или нет.

Если и то, и другое одинаково, то вам следует перейти к функции входа в 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
  }
 

Комментарии:

1. Могу ли я позволить пользователям создавать свои собственные пароли для любого подтвержденного электронного письма?

2. Проверка электронной почты-это просто проверка правильности введенного электронного письма или нет. Если это правильно, вы можете войти в свою почту и подтвердить ссылку для подтверждения, нажав на нее. Независимо от того, какой пароль вы установили на firebase во время регистрации.

3. Сначала создайте пользователя с firebase (с вашей собственной электронной почтой и любым паролем, который вы хотите), а затем после того, как вы сможете отправить ссылку для подтверждения электронной почты, если вы хотите только подтвердить электронную почту.

4. Вы можете использовать FirebaseAuth.instance.createUserWithEmailAndPassword(email: email, password: password) в качестве пароля, вы можете выбрать все, что захотите