플러터에서 Firebase Message를 사용하기 위해선 사전에 여러 셋업이 필요합니다.
특히 셋업 방법이 Android와 iOS가 다른데요.
이번 포스팅에서는 Android에서 Firebase Message를 세팅하는 방법에 대해 알아보겠습니다.
- Firebase Message 패키지 설치하기
- Firebase Message 사용 준비하기
- Firebase Message 알림 테스트
- Firebase Message 프로젝트 설정 및 테스트
Firebase Message 패키지 설치하기
다음과 같은 커맨드를 플러터 프로젝트에서 실시합니다.
flutter pub add firebase_messaging
Android는 위 커맨드 실시만으로 패키지 설치 및 세팅이 끝납니다.
(iOS보다 훨씬 간단하고 쉽죠 ㅠㅠ)
Firebase Message 사용 준비하기
Firebase Message를 사용하기 위해선 기기에서 푸시 알람 설정과 Firebase Message의 토큰이 필요합니다.
먼저 Push Notification 권한을 요구할 화면을 선정합니다.
(해당 화면은 반드시 StatefulWidget이어야 합니다.)
그리고 해당 화면에서 다음과 같이 정의합니다.
class _ChatScreenState extends State<ChatScreen> {
// initState()에서는 async를 할 수 없기 때문에 별도의 함수 생성
void setupPushNotifications() async {
final fcm = FirebaseMessaging.instance;
// Push Notification 권한 요구 - 반드시 Token을 얻기 전에 실시해야함
await fcm.requestPermission();
// Firebase Message 토큰 얻기
final fcmToken = await fcm.getToken();
print(fcmToken);
}
@override
void initState() {
super.initState();
// 화면을 열었을 때 한 번만 실행되도록 initState() 안에서 실시
setupPushNotifications();
}
@override
Widget build(BuildContext context) {
return Scaffold(
~~~
}
}
위 코드가 성공하면 다음과 같은 토큰 정보가 Log에 출력되는 것을 확인할 수 있습니다.
Firebase Message 프로젝트 설정 및 테스트
이제 Firebase의 Message에 들어가서 프로젝트를 설정합니다.
처음 하는 분들이라면 다음과 같이 나오는데
"Firebase 알림 메시지"를 선택합니다.
그리고 알림 작성을 통해 테스트를 할 수 있습니다.
다음 그림과 같이 설정하고
오른쪽에 보이는 "테스트 메시지 전송"을 클릭합니다.
거기에 위 코드에서 출력한 로그에 있는 토큰을 복사하여 붙여 넣습니다.
그리고 테스트를 누르면 다음과 같이 Push 알림이 온 것을 확인할 수 있습니다.
이렇게 토큰을 사용하면 특정 단말기에만 Push 알림을 보내서 테스트할 수 있습니다.
다음 과정인 타깃에서 앱 선택에 따라 단체 Push 알림 메시지도 보낼 수 있습니다.
특정 주제로 Firebase Message 구독하기
특정 주제로 Firebase Message를 구독할 수도 있습니다.
다음과 같이 코드를 수정하고
class _ChatScreenState extends State<ChatScreen> {
// initState()에서는 async를 할 수 없기 때문에 별도의 함수 생성
void setupPushNotifications() async {
final fcm = FirebaseMessaging.instance;
// Push Notification 권한 요구 - 반드시 Token을 얻기 전에 실시해야함
await fcm.requestPermission();
// 토큰 필요할 때 사용하기
// final fcmToken = await fcm.getToken();
// print("token: $fcmToken");
// chat이라는 주제의 message를 구독한다
fcm.subscribeToTopic('chat');
}
@override
void initState() {
super.initState();
// 화면을 열었을 때 한 번만 실행되도록 initState() 안에서 실시
setupPushNotifications();
}
@override
Widget build(BuildContext context) {
return Scaffold(
~~~
}
}
플러터 프로젝트를 다시 실행합니다.
그리고 Firebase Message에서 다음과 같이 지정합니다.
메시지 주제에 위 코드에서 지정한 'chat'을 입력합니다.
그리고 특별한 설정을 하지 않고 그냥 보내면 됩니다.
참고로 이렇게 '게시'를 통해서 Message를 보내는 것은 조금 느립니다.
토큰을 통해 개별로 보낸 것과 달리 Message를 수신할 때까지몇 분 정도 소요됩니다.
결과는 다음과 같이 똑같습니다.
이외에도 다른 Firebase의 SDK를 사용하는 방법들을 게시했습니다!
Firebase SDK를 사용해서 로그인 인증(Auth) 처리하기
'플러터(flutter)' 카테고리의 다른 글
플러터에서 Json 형태로 데이터 저장하기-1 (0) | 2024.05.09 |
---|---|
플러터의 Sqlite를 riverpod의 Provider로 사용하기 - 1 (0) | 2024.04.23 |
플러터에서 Firebase SDK를 사용하여 로그인 상태 처리 (0) | 2024.01.08 |
플러터에서 Firebase SDK를 사용해서 로그인 인증하기 (0) | 2024.01.06 |
플러터에서 Firebase SDK 사용하기 (SDK 설치하기) (0) | 2024.01.04 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글