1. Github
Repository 생성
•
{Project-Name}-Backend : Firebase backend 소스코드 관리를 위한 Repository
•
{Project-Name}-Flutter : Flutter 소스코드 관리를 위한 Repository
.gitignore 파일 추가
{Project-Name}-Backend 용 .gitignore
{Project-Name}-Flutter 용 .gitignore
2. Firebase
Firebase Project 생성
•
{Project-Name} Staging : 개발환경
•
{Project-Name} Production : 운영환경
요금제 Spark ⇒ Blaze 로 변경
Region = northeast3
3. 개발 디렉토리 설정 및 initial commit
•
{Project-Name} 디렉토리 생성
◦
하위에 {Project-Name}-Flutter, {Project-Name}-Backend git clone
4. Flutter Project
Android Studio 에서 Fluter 프로젝트 생성. 생성된 파일들 모두 {Project-Name}-Flutter 하위로 이동
gitignore 추가
commit & push
5. Firebase Project
{Project-Name}-Backend 디렉토리에서 firebase init 수행. exsiting project 연결.
gitignore 추가
commit & push
6. Firebase Backend github action 자동 배포 스크립트
Github backend repo Secrets에 FIREBASE_TOKEN 추가
•
쉘에서 firebase login:ci 수행하면 token 나옴
Github action 추가
Functions - Production
Functions - Staging
7. Firebase 빌드 및 hot reload 설정
firebase.json
predeploy 에서 lint 제거
functions/package.json
"scripts": {
"lint": "eslint --ext .js,.ts .",
"build": "tsc",
"serve": "tsc -w | firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log",
"kill-port": "npx kill-port 8080 && npx kill-port 4000 && npx kill-port 9000 && npx kill-port 9099 && npx kill-port 8085 && npx kill-port 4400"
},
YAML
복사
8. Firebase Functions 서비스 계정 추가
firebase 프로젝트 설정 > 서비스 계정 > 새 비공개 키 생성 > json 파일을 functions디렉토리로
9. Firebase Functions Boilerplate
위 커밋 상태가 개발환경 firebase functions 셋팅 완료한 상태
10. Firebase iOS/Android 앱 추가
bundle ID
staging, production 구분하여 iOS, Android 앱 각각 추가
11. 클라우드 메시징
teamId: QD353RFHM5
keyID: W9J9DBB796
p8 파일을 Firebase 프로젝트 설정 > 클라우드 메시지 에 추가
•
p8파일 로컬에 잘 보관하기.
12. Flutter 기본 pub 설정
flutter pub add firebase_core
flutter pub add firebase_auth
flutter pub add firebase_messaging
flutter pub add provider
flutter pub add http
flutter pub add build_runner
flutter pub add dart_json_mapper
flutter pub add shared_preferences
flutter pub add http_interceptor
13. Flutter
스크립트
build.yaml