Firebase 설정
1. Firebase module 설치
- npm install --save @react-native-firebase/app
2. 자격 증명 발급
- Android
· 프로젝트 내 android 폴더 진입 (cd android)
· ./gradlew signingReport 실행
· 여러 Variant 정보가 생성되는데, debug Variant의 SAH1를 복사하여 Firebase Project 생성 시 설정
(SHA1은 선택이지만 Dynamic Link 등의 기능을 사용하기 위해서는 설정해야 함)
· google-services.json 파일이 생성되면 파일을 /android/app에 이동
3. Firebase 설정
· 프로젝트 레벨의 build.gradle 파일에 dependency 추가
buildscript {
dependencies {
// ... other dependencies
classpath 'com.google.gms:google-services:4.3.3'
// Add me --- /\
}
}
· 앱 레벨의 build.gradle 파일을 아래와 같이 추가
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // <- Add this line
- iOS
· 생략
4. Autolinking & Rebuilding
- RN 0.60+ 이상 버전부터는 자동으로 autolinking 되기 때문에 별도로 처리할 필요가 없음
- RN 0.60 미만 버전은 아래와 같이 처리 필요
# Android apps
npx react-native run-android
# iOS apps
cd ios/
pod install --repo-update
cd ..
npx react-native run-ios
참고 : rnfirebase.io/
FCM 설정
FCM : Firebase 클라우드 메세징 (하루에 수십억 개 발송 가능, 250ms 내 전송 가능, 무료)
1. FCM module 설치
# Install & setup the app module
yarn add @react-native-firebase/app
# Install the messaging module
yarn add @react-native-firebase/messaging
# If you're developing your app using iOS, run this command
cd ios/ && pod install
2. 메시지 수신
- 메세지 수신을 위해 Device Instance Token 발급 과정이 필요.
(토큰 발급 -> 토큰 값을 통한 알림 전송)
- 메세지 수신의 경우 핸들러를 통해 처리됨. (onMessage(), setBackgroundMessageHandler())
- 사용자 앱의 상태를 Foreground(활성화), Background(홈 키를 누르거나, 다른 앱을 실행 중일 경우), Quit(잠금 상태, 실행 중이지 않은 경우)로 분류한다고 했을 때 적용되는 핸들러가 다름
Status | Called |
Foreground | onMessage() |
Background | setBackgroundMessageHandler() |
Quit | setBackgroundMessageHandler() |
- 백그라운드 핸들러 설정을 위해서 setBackgroundMessageHandler는 어플리케이션 단위 밖에서 빠르게 설정해 주어야 함. (index.js)
3. 메세지 발신
3-1. Firebase console
Firebase console(console.firebase.google.com/)에서 테스트 알림을 보낼 수 있음.
3-2. Backend Server
HTTP Protocol을 이용해 FCM 서버와 통신하여 알림을 보낼 수 있음.
'Development > React Native' 카테고리의 다른 글
[React Navigation] Deep Linking 적용 (0) | 2022.08.15 |
---|---|
[Docs] Testing (0) | 2022.08.15 |
React Native iOS 배포 (0) | 2021.02.22 |
React Native Firebase 설정 및 구글 로그인 연동 (iOS) (0) | 2021.01.28 |
Cocoapods (0) | 2021.01.28 |