flutter Login 기능 구현하기-01

황인호·2023년 1월 18일
0

데이터에 접근하려는 유저를 확인하기 위해서 로그인 기능이 필요하다.

  • FireBase Auth 를 사용해서 구현하려고한다
    사용이유 : 직접 구현하려면 다소 복잡한 기능들이 Firebase Authentication 에서는
    이미 구현되어있고 서버도 직접 구축할 필요가 없기 때문
    즉, 간편하고 무료다...!!

Firebase Auth 설정하기

시작하기 클릭!

다양한 방법중에 이메일 / 비밀번호로 해보려고한다.

저장버튼을 누르면 아래의 화면이 된다~~

즉 설정이 끝났다는뜻임!!

AuthService 만들기

  • 로그인 기능을 담당하기 위해서~~

lib > auth_service.dart 파일 생성

auth_service.dart

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class AuthService extends ChangeNotifier {
  User? currentUser() {
    // 현재 유저(로그인 되지 않은 경우 null 반환한다~~!!)
  }

  void signUp({
    required String email, // 필수입력값 : 이메일
    required String password, // 필수입력값 : 비밀번호
    required String onSuccess, // 가입 설공시 호출되는 함수
    required Function(String err) onError, // 에러 발생시 호출되는 함수
  }) async {
    // 회원가입
  }

  void signIn({
    required String email,
    required String password,
    required String onSuccess,
    required Function(String err) onError,
  }) async {
    // 로그인
  }

  void signOut() async {
    // 로그아웃
  }
}

main.dart

import 'package:bucketlist/auth_service.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); // main 함수에서 async 사용하기 위함
  await Firebase.initializeApp(); // firebase 앱 시작
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(
          create: (context) => AuthService(),
        ),
      ],
      child: const MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold();
  }
}

일단 오늘은 여기까지...

main.dart 는 이대로 실행하면 오류난다.

왜냐하면 실행하고자하는 MyApp 을 MaterialApp 으로 안 감쌋기때문이다.

감싸주면잘된다~~

profile
성장중인 백엔드 개발자!!

0개의 댓글