Firebase 회원 인증기능
- Firebase Console → 빌드 → Authentication
- 우선 간단하게 이메일/비밀번호를 택하여 인증기능 구현하기
- 이후 shop 페이지에서 인증시 접근 가능하도록 하기
- 셋팅
// shop.dart
// firebase_auth (인증)
import 'package:firebase_auth/firebase_auth.dart';
final auth = FirebaseAuth.instance;
signUp() async{
try {
var result = await auth.createUserWithEmailAndPassword(
email: 'email',
password: 'password'
);
print(result.user);
} catch (e) {
print(e);
}
}
- singUp() 함수를 실행시키고 Firebase의 Authentication의 user를 확인해보면 회원가입이 잘 되어있는 것을 확인할 수 있다.
- 여기서 유저의 이름도 함께 가입시 넣고 싶다면 아래와 같이 작성하기
signUp() async{
try {
var result = await auth.createUserWithEmailAndPassword(
email: 'test2@naver.com',
password: '123123'
);
result.user?.updateDisplayName('hm'); // <-- 요기
print(result.user);
} catch (e) {
print(e);
}
}
- 잠시 여기서 ?. 으로 물음표랑 마침표를 하는 이유는 무엇일지 짚고 넘어간다면
- 그냥 result.uer.updateDisplayName()을 하게 되면 updateDisplayName이 없을 수도 있기에 미리 에러를 발생하게 된다.
- 즉, null check를 하라는 의미로 간편하게 null check를 하고자 한다면 ?. 을 사용하면 된다.
- 그래서 해당 코드를 해석하자면 updateDisplayName() 가 없다면 null을 남기고 있다면 해당 함수를 실행해라는 의미가 된다.
- 그리고 !. 로 느낌표랑 마침표를 사용할 때는
- 무조건 null이 아닐때 사용하는 문법이 된다.
- 로그인 하기
login() async{
try {
await auth.signInWithEmailAndPassword(
email: 'email',
password: 'password'
);
} catch (e) {
print(e);
}
}
logout() async{
await auth.signOut();
}