flutter

flutter - firebase 로그인, 로그아웃

paulaner80 2020. 12. 21. 15:36
반응형

android\app\src\main\AndroidManifest.xml 파일에서 package 명을 가져옵니다.

 

jong.com.example.flutter_app_login_app

 

 

 

서명된 인증에서 SHA-A 해쉬값을 받아야함.

윈두오의 경우 keytool 명령어를 통해서 받음.



 keytool -list -v \

-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore





 

릴리즈 인증서에 해쉬값을 추가해 주어야함.

개발할 때는 디버그 인증서에 해쉬값만을 추가해도됩니다.


 

%USERPROFILE%\.android\debug.keystore   는  debug.keystore 있는 폴더입니다.

 

271 
bui d-cache 
n cache 
studio 
adb_usb.ini 
adbkey 
adbkey.pub 
analytics.sett•ngs 
build-cache.lock 
debug keystore 
debugkeystorelock 
@default.sq 
default.sql-journal 
emu-last-feature-flags.protobuf 
emu-update-last-check.ini 
modem-nv-ram-5554 
breakpad 
20170-13 
20170-13 
2020-11-16 
2018-01-16 
2017-09-12 
2018-01-16 
2018-01-16 
2020-12-18 
2020-12-18 
2020-12-18 
G ndroid 
2019-03-12 
2020-11-30 
2020-12-18 
201g-10-25 
20170-12 
201g-10-25 
2018-01 16 e 
Microsoft Publislm„ 
Settings-Designer„ 
LOCK 
KEYSTORE 
LOCK 
SQL-script 
SQL-JOURNAL 
PROT03UF

 

keytool명령이 가능한 곳에서 명령어를 실행해줍니다.

자바 경로를설정하지 않아서 java- bin 폴더로 이동하여 실행했습니다.

 

조 C:fijjjfi」avafijdkl . 7 .0_7%bin> .fikeytool .exe -v -위 ias and「oiddebugkey -keysto「e C:fil」se「SW 
eysto「e 
키 저장소 비밀번호 입력: 입력하지 않음.. 디폴트 암호 
WARNING WARNING WARNING 
키 저장소에 저장-돈! 정보의 무결성이 
-확인되지 않았습니다! 무결성을 -확인하려년, 
키 저장소 비밀번호를 제공하야 합니다 
WARNING WARNING WARNING 
별칭 이름: and「oiddebugkey 
생성 날짜: 2017. 12 
항목 유형: P「ivateKeyEnt「y 
인증서 체인 길이: 1 
인증서[1] 
소유자: 0=님S, 0=And「oid, CN=And「oid Debug 
발행자: 0=님S, 0=And「oid, CN=And「oid Debug 
일련 번호: 1 
적합한 시작 날짜: Tue Sep 12 17 : 13%딘 KST 2017, 종료 날짜: Thu Sep 05 17 : 13%딘 KST 2047 
인증서 지문 
MD듬: E日:1牟6引듬日:日1:日다11614日:듬1:占111:6듬:듬F:占日:0日 
SHAI 
님치E치4心0구07:딘우417心El:딘心B1170%2:日긴0치0日:日日:디:0치F日 
.and「oi%debug 기( 
SH占2듬日: : 田: 71 : 4타 00 : E긴0긴F구BE:日心7긴E딘뼌4%0:日치A7:듬1:田: 田: 70: 74 : 0B: : 45 : : 00 
서명 알고리즘 이름: SHAIwithRSA 
버전: 1 
조 C:fij j _ifi」avafijdkl . 7 .0_7%bin>

 

 

이것을 등록하고

 

설정파일 다운로드

flutter_app_login_app android app 
google-servicesJson

 

 

프로젝트 수준 디펜던시 추가

dependencies { 
classpath 
classpath 
classpath 
com.android . tools . build : grad1e:3.S.ß 
' org . jetbrains . kotlin : kotlin-gradle-plugin :$kotlin_version" 
' com.google . gms : google- services :4.3 . 4'

 

 

앱수준 디펜던시 추가

any 
apply 
apply 
apply 
plugin: 'com.android.application' 
plugin: ' com.google.gms . google-services ' 
plugin: 'kotlin-android' 
from: "$f1utterRoot/packages/f1utter_t001s/grad1e/f1utter . gradle "

 

 

 

dependencies { 
implementation 
implementation 
.org . jetbrains . kotlin : kot1in-std1ib-jdk7 : 
' com.google.firebase : firebase- analytics '

 

 

minSdkVersion 수정

minSdkVersion 21추가

defaultConfig { 
// TODD: Specify your own unique Application ID (https 
applicationld "jong.com.example . 
minSdkVersion 21 
targetSdkVersion 29 
versionCode flutterVersionCode. tolnteger() 
versionName flutterVersionName

 

라이브러리 추가

dependencies:

  firebase_core: ^0.5.3

  firebase_auth: ^0.18.4+1

 

 

 

파이어베이스에서 활성화 시키기

 

 

 

 

 

 

 

 

 

 

signIn


Future<void> signIn() async {
await Firebase.initializeApp();

try {
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: "onetowthrefourfivesix@gmail.com", password: "123456");
print("Success");
} 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.');
} else {
print(e.code.toString());
}
}
}

 

signOut


Future<void> signOut() async {
await Firebase.initializeApp();

try {
await FirebaseAuth.instance.signOut();
print("Success");
} catch (e) {
print(e.toString());
}
}


 

resetPassword

Future<void> resetPassword() async {
await Firebase.initializeApp();

await FirebaseAuth.instance
.sendPasswordResetEmail(email: "onetowthrefourfivesix@gmail.com");
}

 

 

verifyEmail

 


Future<void> verifyEmail() async {
await Firebase.initializeApp();

User user = FirebaseAuth.instance.currentUser;
user.sendEmailVerification();
}

 

 

setDisplayName

Future<void> setDisplayName() async {
await Firebase.initializeApp();

User user = FirebaseAuth.instance.currentUser;
user.updateProfile(displayName: "onetowthrefourfivesix");
}

 

 

 

checkDisplayName

 

Future<void> checkDisplayName() async {
await Firebase.initializeApp();

User user = FirebaseAuth.instance.currentUser;
print(user.displayName);
}

'flutter' 카테고리의 다른 글

Provider 예제  (0) 2021.04.08
dart functor  (0) 2020.12.28
isolate를 이용하여 데이터 처리하기  (0) 2020.12.18
WidgetsBindingObserver  (0) 2020.12.08
Form, TextFormField  (0) 2020.12.04