Firebase регистрирует пользователя, даже если электронная почта не зарегистрирована и пароль тоже неверный

# #flutter #dart #firebase-authentication

Вопрос:

Я слежу за видео на YouTube о создании приложения для социальных сетей с помощью Flutter и Firebase.

Но в части аутентификации Firebase входит в систему пользователя, даже если электронное письмо, введенное пользователем, не зарегистрировано в базе данных.

Firebase также входит в систему пользователя, если электронное письмо зарегистрировано в базе данных, но пароль введен неверно.

Вот моя аутентификация.дарт, где у меня есть все для аутентификации:

 import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';

class Authentication with ChangeNotifier {
  final FirebaseAuth firebaseAuth = FirebaseAuth.instance;
  final GoogleSignIn googleSignIn = GoogleSignIn();

  String userUid;
  String get getUserUid => userUid;

  Future logIntoAccount(String email, String password) async {
    UserCredential userCredential = await firebaseAuth
        .signInWithEmailAndPassword(email: email, password: password);

    User user = userCredential.user;
    userUid = user.uid;
    print(userUid);
    notifyListeners();
  }

  Future createAccount(String email, String password) async {
    UserCredential userCredential = await firebaseAuth
        .createUserWithEmailAndPassword(email: email, password: password);

    User user = userCredential.user;
    userUid = user.uid;
    print('Created account Uid => $userUid');
    notifyListeners();
  }

  Future logOutViaEmail() {
    return firebaseAuth.signOut();
  }

  Future signInWithGoogle() async {
    final GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
    final GoogleSignInAuthentication googleSignInAuthentication =
        await googleSignInAccount.authentication;
    final AuthCredential authCredential = GoogleAuthProvider.credential(
        accessToken: googleSignInAuthentication.accessToken,
        idToken: googleSignInAuthentication.idToken);

    final UserCredential userCredential =
        await firebaseAuth.signInWithCredential(authCredential);
    final User user = userCredential.user;
    assert(user.uid != null);

    userUid = user.uid;
    print('Google User Uid => $userUid');
    notifyListeners();
  }

  Future signOutWithGoogle() async {
    return googleSignIn.signOut();
  }
}
 

Пожалуйста, направьте меня, проверив, есть ли что-то неправильное в части аутентификации.

Ответ №1:

Пожалуйста, проверьте свой код, нажав на кнопку входа в систему — я предоставляю справочный метод, надеюсь, он вам поможет.

Будущий<Пользователь?> Логин пожаротушения(строковое электронное письмо, строковый пароль) асинхронный { FirebaseAuth _auth = FirebaseAuth.экземпляр;

 try {
  final loggedInUser = await _auth.signInWithEmailAndPassword(
      email: email, password: password);

  AppSharedPreference().saveUserId(_auth.currentUser!.uid);
  print(_auth.currentUser!.uid);

  if (loggedInUser != null) {
    Navigator.pushReplacementNamed(context, '/bottomNavBar');
  }
} catch (e) {
  print(e);
  return null;
}
 

}

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

1. Извините, но я новичок в flutter, и я просто делал это, посмотрев учебник. Не могли бы вы, пожалуйста, проводить меня.