Firebase는 많은 기능을 제공하는 플랫폼으로, 클라우드 메시징도 그 중 하나입니다. 클라우드 메시징을 사용하면 앱 사용자에게 푸시 알림을 보낼 수 있습니다. 이번 튜토리얼에서는 Firebase_core 패키지를 사용하여 플러터 앱에서 클라우드 메시징을 구현하는 방법에 대해 알아보겠습니다.
목차
- Firebase 프로젝트 설정
- Firebase_core 패키지 추가하기
- Android 설정
- iOS 설정
- 푸시 알림 보내기
1. Firebase 프로젝트 설정
Firebase 콘솔에 가입하고 새 프로젝트를 만듭니다. 프로젝트 세팅에서 Firebase SDK 구성 파일을 다운로드합니다.
2. Firebase_core 패키지 추가하기
플러터 프로젝트의 pubspec.yaml
파일에 firebase_core
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.2.0
3. Android 설정
Firebase 콘솔에서 안드로이드 앱을 추가하고, 패키지명과 SHA-1 키를 입력합니다. 그 후에 google-services.json
파일을 프로젝트의 android/app
폴더에 추가합니다.
이어서 android/build.gradle
파일에서 buildscript
섹션에 다음 코드를 추가합니다.
dependencies {
// ...
classpath 'com.google.gms:google-services:4.3.10'
}
android/app/build.gradle
파일의 맨 아래에 다음 코드를 추가합니다.
apply plugin: 'com.google.gms.google-services'
4. iOS 설정
Firebase 콘솔에서 iOS 앱을 추가하고, Bundle Identifier를 입력합니다. 그 후에 GoogleService-Info.plist
파일을 프로젝트의 ios/Runner
폴더에 추가합니다.
5. 푸시 알림 보내기
Firebase 콘솔에서 “Cloud Messaging” 탭으로 이동하여 푸시 알림을 보낼 수 있는 서버 키를 확인합니다.
Firebase 콘솔에서 “Cloud Messaging” 탭으로 이동하여 알림을 보낼 수 있는 알림 양식 템플릿을 만듭니다.
플러터 앱에서 main.dart
파일을 열고 Firebase_core를 초기화합니다.
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
Firebase 클라우드 메시징을 사용하여 푸시 알림을 보내고 받기 위해 firebase_messaging 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.2.0
firebase_messaging: ^10.0.9
푸시 알림을 수신할 수 있도록 디바이스 토큰을 가져옵니다.
import 'package:flutter/material.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePage createState() => _MyHomePage();
}
class _MyHomePage extends State<MyHomePage> {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;
String? _token;
@override
void initState() {
super.initState();
_getToken();
}
void _getToken() async {
String token = await _firebaseMessaging.getToken();
setState(() {
_token = token;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('푸시 알림 테스트'),
),
body: Center(
child: Text('디바이스 토큰: $_token'),
),
);
}
}
알림이 수신되면 알림을 처리하는 코드를 추가합니다.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
// 알림 수신 시 처리할 로직 작성
});
runApp(MyApp());
}
Firebase 콘솔에서 “Cloud Messaging” 탭으로 이동하여 푸시 알림을 보낼 수 있습니다.
결론
Firebase_core를 사용하여 플러터 앱에서 클라우드 메시징을 구현하는 방법을 알아보았습니다. Firebase 콘솔에서 푸시 알림을 생성하고, 플러터 앱에서 클라우드 메시징을 수신하도록 설정하면 앱 사용자에게 푸시 알림을 보낼 수 있습니다.
더 자세한 내용은 Firebase 공식 문서를 참조하세요.