# #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, и я просто делал это, посмотрев учебник. Не могли бы вы, пожалуйста, проводить меня.