반응형
1. Firebase 프로젝트 생성
- Firebase 콘솔 접속: https://console.firebase.google.com/
- 새 프로젝트 생성: "프로젝트 추가" 클릭 후 프로젝트 이름 입력.
- Firebase 구성:
- Google Analytics를 사용할지 선택.
- 필요한 경우 Analytics 계정 설정.
- 앱 등록:
- iOS 또는 Android 앱으로 앱 등록.
- Android: 패키지 이름 입력 (com.example.myapp 형식).
- iOS: iOS Bundle ID 입력.
2. 앱 설정
Android
- google-services.json 다운로드:
- Firebase 콘솔에서 Android 앱 추가 완료 후 google-services.json 파일 다운로드.
- android/app 디렉토리에 배치.
- android/build.gradle 업데이트:
- dependencies { classpath 'com.google.gms:google-services:4.3.15' }
- android/app/build.gradle 업데이트:
- apply plugin: 'com.google.gms.google-services' dependencies { implementation platform('com.google.firebase:firebase-bom:32.0.0') implementation 'com.google.firebase:firebase-messaging' }
- FCM 설정: FirebaseMessagingService를 구성하거나 필요한 경우 디폴트 Firebase 설정 사용.
iOS
- GoogleService-Info.plist 다운로드:
- Firebase 콘솔에서 iOS 앱 추가 후 GoogleService-Info.plist 다운로드.
- Xcode 프로젝트에서 Runner 폴더에 추가.
- 푸시 알림 설정:
- Xcode에서 Signing & Capabilities > Push Notifications 활성화.
- Background Modes > Remote Notifications 활성화.
- APNs 인증 키 업로드:
- Firebase 콘솔 > 프로젝트 설정 > 클라우드 메시징 > iOS 앱 설정.
- APNs 인증 키 업로드.
3. Flutter 프로젝트 설정
- firebase_core 및 firebase_messaging 패키지 추가:그런 다음:
- flutter pub get
- dependencies: firebase_core: ^latest_version firebase_messaging: ^latest_version
- Firebase 초기화:
main.dart 파일에 초기화 코드 추가: - import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); }
- 푸시 알림 토큰 가져오기:
- FirebaseMessaging messaging = FirebaseMessaging.instance; void requestPermission() async { NotificationSettings settings = await messaging.requestPermission(); if (settings.authorizationStatus == AuthorizationStatus.authorized) { print('푸시 알림 권한 허가됨.'); } } void getToken() async { String? token = await messaging.getToken(); print('FCM Token: $token'); } @override void initState() { super.initState(); requestPermission(); getToken(); }
- 푸시 알림 핸들링:
- FirebaseMessaging.onMessage.listen((RemoteMessage message) { print('푸시 알림 수신: ${message.notification?.title}'); }); FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { print('알림으로 앱 열림: ${message.data}'); });
4. 푸시 알림 테스트
- Firebase 콘솔에서 메시지 전송:
- Firebase 콘솔 > 클라우드 메시징 > 새 메시지 작성.
- 특정 앱 대상 선택 및 메시지 내용 입력.
- 기기에서 앱 실행 및 테스트.
5. 디버깅 및 추가 기능
- 에러 로그 확인:
- Android: adb logcat 사용.
- iOS: Xcode 디버그 콘솔 사용.
- 토큰 갱신 이벤트 처리:
FirebaseMessaging.instance.onTokenRefresh.listen((newToken) { print('새 FCM Token: $newToken'); });
- 백그라운드 및 종료 상태 푸시 처리: Firebase Messaging 문서 참조.
참고 자료
반응형