[flutter] Firebase_core를 사용하여 플러터 앱에서 Firebase 인증 메일 전송하기

Firebase는 앱 개발자들에게 다양한 기능을 제공하는 Google의 클라우드 기반 플랫폼입니다. Firebase_core는 Firebase 서비스를 초기화하고 구성하기 위한 필수적인 패키지입니다. 이 기능을 사용하여 플러터 앱에서 Firebase 인증 메일을 전송하는 방법을 알아보겠습니다.

1. Firebase 프로젝트 설정

먼저, Firebase 콘솔에서 새로운 프로젝트를 생성하고 앱을 추가해야 합니다. Firebase 콘솔에 로그인한 후 “새 프로젝트 만들기”를 클릭하고 프로젝트 이름을 입력합니다. 그런 다음 “앱 추가”를 클릭하여 Android 또는 iOS 앱을 추가합니다. 이 작업을 완료하면 Firebase 설정에 필요한 구성 파일을 받을 수 있습니다.

2. Flutter 프로젝트에 Firebase_core 추가

Firebase_core를 사용하기 위해 Flutter 프로젝트에 Firebase_core 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음과 같은 의존성을 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^0.7.0

의존성을 추가한 후, pub get 명령어를 실행하여 패키지를 다운로드합니다.

3. Firebase 앱 초기화

Firebase 앱을 초기화하려면 Firebase 앱의 설정을 main.dart 파일에 추가해야 합니다. 다음과 같이 코드를 작성합니다:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  runApp(MyApp());
}

Firebase.initializeApp() 메서드는 Firebase 앱 초기화를 수행하는 데 사용됩니다.

4. Firebase 인증 메일 전송

Firebase 인증 메일 전송을 위해서는 Firebase Authentication 패키지를 사용해야 합니다. Firebase Authentication은 사용자 관리 및 인증을 처리하는 데 사용됩니다. 다음과 같은 의존성을 pubspec.yaml 파일에 추가하세요:

dependencies:
  firebase_auth: ^3.1.0

Firebase 앱이 초기화되었으므로, Firebase 인증을 사용하여 메일을 전송할 수 있습니다. 다음은 예시 코드입니다:

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

Future<void> sendVerificationEmail() async {
  User? user = FirebaseAuth.instance.currentUser;
  if (user != null) {
    await user.sendEmailVerification();
  }
}

FirebaseAuth.instance.currentUser를 사용하여 현재 사용자를 가져온 다음, sendEmailVerification() 메서드를 호출하여 인증 메일을 전송할 수 있습니다.

5. 전체 코드 예시

다음은 전체 코드의 예시입니다:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Firebase Email Verification',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Firebase Email Verification'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: sendVerificationEmail,
          child: Text('Send Verification Email'),
        ),
      ),
    );
  }

  Future<void> sendVerificationEmail() async {
    User? user = FirebaseAuth.instance.currentUser;
    if (user != null) {
      await user.sendEmailVerification();
      // TODO: Show success message or navigate to verification screen
    }
  }
}

이제 플러터 앱에서 Firebase 인증 메일을 전송할 수 있는 기능이 구현되었습니다.

Firebase 관련 자세한 내용은 Firebase 공식 문서를 참조하세요.