๊ฐœ๋ฐœ/Flutter

[ํ”Œ๋Ÿฌํ„ฐ/firebase] signup ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

๋ฐ(Ming) ๐Ÿˆโ€โฌ› 2022. 6. 21. 00:35
728x90
๋ฐ˜์‘ํ˜•

โ–ช 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์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค 

 

 

 

 

728x90