Search
🎉

RN Notification 등록

생성일
2021/03/02 12:25
태그
속성
개별 유저에게 Push Notification 을 발송하기 위해서는
서버에서는 DB에
user fcm token 매칭이 필요하며
client 에서는 OS에게 Push 권한을 요청해서 권한을 부여받아야 하며
fcm token 을 서버에 전송해야한다
iOS
Capability → Push Notification 추가

Android

'com.google.gms.google-services' 를 Gradle에 추가해야 한다고 하는데 Firebase 를 이미 적용하면서 적용된 부분. Push 를 위해서 다시 추가할 필요 없음.
buildscript { ext { buildToolsVersion = "29.0.2" minSdkVersion = 16 compileSdkVersion = 29 targetSdkVersion = 29 googlePlayServicesVersion = "17.0.0" 👈👈👈👈👈 } repositories { google() jcenter() } dependencies { classpath('com.android.tools.build:gradle:4.1.1') classpath 'com.google.gms:google-services:4.3.4' } }
Shell
복사

npm module 설치

npm i -s @react-native-firebase/app @react-native-firebase/messaging
Shell
복사
dependency 오류가 나는데. —legacy ~~ 옵션을 주니 일단 진행은 됨
ios 는 pod install
android 는 now sync 하고 실행하면
Error: You attempted to use a firebase module that's not installed on your Android project by calling firebase.messaging(). Ensure you have: 1) imported the 'io.invertase.firebase.messaging.ReactNativeFirebaseMessagingPackage' module in your 'MainApplication.java' file. 2) Added the 'new ReactNativeFirebaseMessagingPackage()' line inside of the RN 'getPackages()' method list.
Shell
복사

권한 요청 및 설정

async function requestUserPermission() { const authStatus = await messaging().requestPermission(); const enabled = authStatus === messaging.AuthorizationStatus.AUTHORIZED || authStatus === messaging.AuthorizationStatus.PROVISIONAL; if (enabled) { console.log('Authorization status:', authStatus); } else { Alert.alert("알림 권한을 켜주세요", "상품이 재입고되면 푸시 알림으로 알려드려요.", [ { text: "아니요", onPress: () => { }, style: "cancel" }, { text: "설정하러 가기", onPress: () => { Linking.openSettings(); 👈 앱 설정으로 감 iOS, Android 각각 알아서 동작 } }, ], { cancelable: false } ); } }
Shell
복사
npm install --save @react-native-community/push-notification-ios
JSON
복사
pod install