참고 사이트
https://youtu.be/se6wKk-w8lI
Authentication 셋팅
import 'package:firebase_auth/firebase_auth.dart';
//firebase authentication 사용하기 위한 인스턴스 생성
final _authentication = FirebaseAuth.instance;
회원가입 코드
//회원가입 로직 try { final newUser = await _authentication .createUserWithEmailAndPassword( email: userEmail, password: userPassword, ); newUser.user?.updateDisplayName(userName); } on FirebaseAuthException catch (e) { if (e.code == 'weak-password') { print('The password provided is too weak.'); } else if (e.code == 'email-already-in-use') { print( 'The account already exists for that email.'); } }
로그인 코드
//로그인 로직 try { final newUser = await _authentication .signInWithEmailAndPassword( email: userEmail, password: userPassword); if (newUser.user != null) { // ignore: use_build_context_synchronously Navigator.pushNamed(context, '/chat_page'); } } on FirebaseAuthException catch (e) { if (e.code == 'user-not-found') { print('No user found for that email.'); } else if (e.code == 'wrong-password') { print('Wrong password provided for that user.'); } } ```
로그인 후 회원 정보 보기
import 'package:firebase_auth/firebase_auth.dart';
final _authentication = FirebaseAuth.instance;
User? loggedUser;
@override
void initState() {
getCurrentUser(); //현재 로그인한 유저 정보 보는 함수
super.initState();
}
//현재 로그인한 유저 정보 보는 함수
void getCurrentUser() {
try {
final user = _authentication.currentUser;
if (user != null) {
loggedUser = user;
print(loggedUser!.email);
print(user.displayName);
}
} catch (e) {
print(e);
}
}
로그인 한 상태인지 아닌지 확인하는 코드
if(auth.currentUser?.uid == null){ print('로그인 안된 상태군요'); } else { print('로그인 하셨네'); }
로그아웃
await auth.signOut();