[flutter] Firebase 인앱 메시징을 사용하여 선택적으로 앱 사용자에게 알림 보내는 방법은?

Firebase를 사용하여 Flutter 앱에서 Firebase Cloud Messaging (FCM)을 통해 인앱 메시징을 구현하는 것은 매우 간단합니다. Firebase로 선택적으로 알림을 보내려면 Firebase의 특정 기능을 사용해야 합니다. 아래에서 그 방법을 설명하겠습니다.

1. Firebase 프로젝트 설정

Firebase Console에서 프로젝트를 선택하고 “Cloud Messaging” 탭을 엽니다. “새 알림 만들기” 버튼을 클릭하여 새로운 알림을 작성합니다.

2. Flutter 프로젝트 설정

Flutter 앱에서 Firebase를 설정하고 플러그인을 추가합니다. 아래는 pubspec.yaml 파일에 Firebase 및 FCM 플러그인을 추가하는 예시입니다.

dependencies:
  firebase_core: ^1.10.0
  firebase_messaging: ^11.3.0

플러그인을 추가한 후, Flutter 앱의 메인 코드에 Firebase를 초기화하고 FCM을 설정합니다.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';

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

  FirebaseMessaging messaging = FirebaseMessaging.instance;
  // FCM 설정 및 퍼미션 요청
}

이제 사용자가 푸시 알림을 받는 허용 여부를 설정할 수 있도록 퍼미션을 요청할 수 있습니다.

3. 선택적으로 알림 보내기

특정 사용자 또는 특정 그룹에게 선택적으로 알림을 보내려면 FCM의 고급 기능을 사용해야 합니다. 이를 위해 topics 또는 device groups를 활용할 수 있습니다.

Topics를 활용한 선택적 알림

사용자가 특정 주제에 가입되어 있다면, 해당 주제에 속한 사용자에게 알림을 보낼 수 있습니다. Flutter 앱에서는 아래와 같은 코드로 특정 주제에 가입할 수 있습니다.

messaging.subscribeToTopic('topicName');

Device group을 활용한 선택적 알림

트립을 예약한 사용자나 특정 이벤트에 참여하는 사용자들에게 알림을 보내려면 device group을 만들어야 합니다. Flutter 앱에서는 아래와 같은 코드로 device group에 사용자를 추가할 수 있습니다.

messaging.addDeviceToGroup(
  "/topics/topicName",
  <String, String>{
    "key1": "value1",
    "key2": "value2",
  },
);

마무리

이제, Firebase의 인앱 메시징을 사용하여 선택적으로 Flutter 앱 사용자에게 알림을 보내는 방법을 이해했습니다. Firebase를 사용하여 더욱 효과적으로 사용자들에게 맞는 알림을 제공할 수 있을 것입니다.

참고 자료