Firebase를 사용한 React Native 알림 설정
설치 및 구성했다고 가정합니다.
✔️ @react-native-firebase
✔️ Firebase를 처리하는 Notifications.ts 파일 생성
✔️ 요청 및 부여된 사용자 권한
✔️ 채널 구독
✔️ Firebase에 알림 리스너 생성
✔️ 데이터가 포함된 알림을 백엔드에서 보낼 수 있습니다.
이제 알림 설정을 해보자
1- 실 추가 @notifee/react-native
2- cd ios/&& 포드 설치 --repo-update
이제 NotificationHandler.ts에서 handleClickedNotitfaction 함수를 생성해 보겠습니다.
export const handleClickedNotitfaction = (notification: FirebaseMessagingTypes.RemoteMessage): void => {
if (notifcation && notification.data && notification.data.type) {
switch (notification.data.type) {
case 'Product':
navigateToProduct({
navigation: NavigationService,
id: notification.data.product_id,
title: notification.data.product_name,
});
break;
case 'Category':
navigateToCategory({
navigation: NavigationService,
id: notification.data.category_id,
title: notification.data.category_name,
});
break;
case 'Brand':
navigateToBrand({ navigation: NavigationService, id: notification.data.brand_id, title: notification.data.brand_name });
break;
default:
navigateToHome({ navigation: NavigationService });
}
}
};
그리고 index.ts 파일에서 onBackgroundEvent 함수를 설정합니다.
import { handleClickedNotitfaction } from './src/utils';
import notifee, { EventType } from '@notifee/react-native';
notifee.onBackgroundEvent(async ({ type, detail }) => {
switch (type) {
case EventType.DISMISSED:
notifee.cancelNotification(detail.notification.id);
break;
case EventType.PRESS:
handleClickedNotitfaction(detail.notification);
break;
default:
break;
}
});
App.tsx에서 onForegroundEvent 함수를 설정합니다.
import { handleClickedNotitfaction } from './utils';
import notifee, { EventType } from '@notifee/react-native';
useEffect(() => {
const unsubscribe = () => {
return notifee.onForegroundEvent(({ type, detail }) => {
switch (type) {
case EventType.DISMISSED:
notifee.cancelNotification(detail.notification.id);
break;
case EventType.PRESS:
handleClickedNotitfaction(detail.notification);
break;
default:
break;
}
});
};
unsubscribe();
}, []);
그런 다음 firebase와 통합되는 onMessageHandler 함수를 만들 수 있습니다.
import notifee from '@notifee/react-native';
const onNotifeeMessageReceived = async (message) => {
const channelId = await notifee.createChannel({
id: 'default',
name: 'Default Channel',
});
notifee.displayNotification({
id: message.messageId,
title: message.notification.title,
body: message.notification.body,
data: message.data,
android: {
channelId: channelId,
pressAction: {
id: 'default',
},
},
});
};
이제 이 기능을 @react-native-firebase/messaging에 추가해야 합니다.
import messaging from '@react-native-firebase/messaging';
useEffect(() => {
const unsubscribe = messaging().onMessage(onNotifeeMessageReceived);
return unsubscribe;
}, []);
이제 @notifee/react-native를 성공적으로 설치하고 @react-native-firebase와 통합했습니다.
행복한 코딩 ❤
Reference
이 문제에 관하여(Firebase를 사용한 React Native 알림 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anasnmu/notifee-setup-for-react-native-with-firebase-1jc6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)