โช flutter / firebase ์ฐ๋ํ๊ธฐ
ํ๋ฌํฐ์ firebase๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ด ํธ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค ๐
firebase ์ฝ์์์ ์๋๋ก์ดํธ ํ๋ก์ ํธ๋ฅผ ์๋ก ๋ง๋ค์ด์ฃผ๊ณ flutter ํ์ผ๋ก ๋์์์ app ํด๋์์ build.gradle ํ์ผ์ ํ์ํ ์ ๋ณด๋ค์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. firebase๋ฌธ์ ๊ฐ ์์ธํ๊ฒ ์ค๋ช ํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ด๋ ค์ธ๊ฒ ์์ต๋๋ค. ๋ชจ๋ ํ์ผ๋ค ์ ๋ฐ์ดํธ๋ฅผ ๋๋ด๊ณ ์ค๋ฅ๋ฉ์ธ์ง๋ฅผ ๋ง๋ฌ๋๋ฐ, flutter sdk๋ฒ์ ผ๊ณผ firebase ๋ฒ์ ผ์ด ์ํธ๊ฐ ์ ๋์์์ต๋๋ค. ์ด๋ด๋
android > app > build.gradle ํ์ผ์ midSdkVersion๊ณผ targetSdkVersion์ ์๋์ ๊ฐ์ด ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ซ์๋ง ๋ํด์ฃผ๋ฉด ๋๋๋ฐ ์ ๊ทธ๊ฑธ ๋ชจ๋ฅด๊ณ ์์ฒญ ํด๋งธ์ต๋๋ค.
defaultConfig {
applicationId "com.example.chat_app"
minSdkVersion 21
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
}
โช flutter / firebase ํ์ ๊ฐ์ ๊ธฐ๋ฅ
firebase์ ์ฐ๋์ด ๋๋ฌ๋ค๋ฉด ์ด์ textformfield๋ฅผ ํตํด์ ํ์ํ ๊ฐ์ ๋ฐ์์ ํ์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ด ์๋ค
์๋์ ๊ฐ์ด ํ์ํ ๊ฐ๋ค์ String ๋ณ์๋ก ์ ์ธํด์ค๋๋ค.
class _LoginSignupScreenState extends State<LoginSignupScreen> {
final _authentication = FirebaseAuth.instance;
//์ ํ๋๋ ๊ฑธ ํ์ํ๊ธฐ ์ํ ๊ฒ
bool isSignupScreen = true;
final _formKey = GlobalKey<FormState>();
String userName = '';
String userEmail = '';
String userPassword = '';
๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด firebase ๋ด์ฅ method (createUserWithEmailAndPassword) ๋ฅผ ์ฌ์ฉํด์ email๊ณผ password๋ฅผ ๋ฑ๋กํฉ๋๋ค ๊ทธ ์๋์ ์์นํ newUser.user -> .user ์ญ์ ๋ด์ฅ method์ ๋๋ค. null ์ด ์๋๋ผ๋ฉด chat page๋ก ๋์ด๊ฐ๋ผ๋ ๋ช ๋ น์ ๋ฃ์ด์ค๋๋ค.
child: GestureDetector(
onTap: () async {
if (isSignupScreen) {
_tryValidation();
try {
final newUser = await _authentication
.createUserWithEmailAndPassword(
email: userEmail,
password: userPassword,
);
if (newUser.user != null) {
Navigator.push(context,
MaterialPageRoute(builder: (context) {
return ChatScreen();
}));
}
} catch (e) {
print(e);
//error snackbar
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Please chenck your email and password'),
backgroundColor: Colors.blue,
),
);
}
}
},
โช firebase User ๋ฆฌ์คํธ ํ์ธ!
ํ์ด์ด๋ฒ ์ด์ค์์ ํ์๊ฐ์ ๋ email์ ํ์ธํ์ค ์ ์๋ต๋๋ค
'๊ฐ๋ฐ > Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ฌํฐ] Listview ์ ์๊ธฐ๋ ๊ณต๋ฐฑ (0) | 2022.08.15 |
---|---|
[flutter/ํ๋ฌํฐ] ๋ฒํผ์ผ๋ก Checkbox ํ ๊ธํ๊ธฐ (0) | 2022.07.10 |
[Flutter] ์๋ก์ด ํ๋ฉด์ผ๋ก ์ด๋ํ๊ณ , ๋๋์๊ฐ๊ธฐ - ํ์ด์ง ์ด๋ (0) | 2022.05.16 |
[Flutter] ListView.builder๋ก ๋ฐ๋ณต๋๋ ๋ถ๋ถ ๋ง๋ค๊ธฐ (0) | 2022.04.17 |
[Flutter/ํ๋ฌํฐ] BuildContext ๋? (0) | 2022.04.06 |