[flutter] 플러터 앱의 푸시 알림 기능을 어떻게 구현할 수 있나요?

푸시 알림은 사용자에게 중요한 정보나 앱에 대한 알림을 전달하는데 사용됩니다. 이 포스트에서는 Flutter 앱에서 푸시 알림 기능을 구현하는 방법에 대해 알아보겠습니다.

Firebase 프로젝트 설정

먼저, Firebase 콘솔에서 프로젝트를 생성하고 앱과 연동해야 합니다. Firebase 콘솔에서 Cloud Messaging을 설정하고, 서버 키 및 발급 토큰을 받아야 합니다.

Flutter 앱에 Firebase 플러그인 추가

firebase_messaging 플러그인을 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^1.10.0
  firebase_messaging: ^11.2.7

또한, Firebase SDK를 초기화해야 합니다. 이를 위해 main.dart 파일에서 Firebase 앱을 초기화하는 코드를 추가해야 합니다.

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

디바이스 토큰 등록

Flutter 앱이 시작될 때, FCM에서 디바이스 토큰을 얻어와서 알림을 수신할 수 있도록 등록해야 합니다. 다음은 푸시 알림을 수신할 수 있도록 FCM을 설정하는 코드입니다.

FirebaseMessaging messaging = FirebaseMessaging.instance;
String? token = await messaging.getToken();

위 코드를 이용하여 FirebaseMessaging의 getToken 메소드를 호출하여 디바이스 토큰을 가져올 수 있습니다.

푸시 알림 수신

Flutter 앱에서 푸시 알림을 처리하기 위해 firebase_messaging 플러그인을 사용할 수 있습니다. 앱이 포그라운드에 있을 때 푸시 알림을 처리하려면 FirebaseMessaging.onMessage 메소드를 사용하고, 백그라운드 또는 종료된 상태에서 알림을 처리하려면 FirebaseMessaging.onBackgroundMessage 메소드를 사용할 수 있습니다.

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  // 앱이 실행 중일 때 푸시 알림을 처리하기
  // message.notification의 내용을 이용하여 알림을 처리
});
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // 앱이 백그라운드 또는 종료된 상태일 때 푸시 알림을 처리하기
  // message.notification의 내용을 이용하여 알림을 처리
}

결론

이제 위에서 언급한 방법으로 Flutter 앱에 푸시 알림을 구현할 수 있습니다. Firebase와 firebase_messaging 플러그인을 사용하여 디바이스 토큰을 등록하고, 푸시 알림을 수신하고 처리하는 기능을 효율적으로 구현할 수 있습니다.


참고문헌: