🔥
Firebase Function 사용법
June 05, 2024
Firebase Functions 개요
Firebase Functions는 서버 없이 백엔드 코드를 실행할 수 있게 해주는 기능이다. 이를 통해 클라우드 이벤트에 응답하거나 HTTP 요청을 처리하는 등의 작업을 수행할 수 있다. Firebase Functions는 Node.js 환경에서 실행된다.
Firebase Functions 설정 및 초기화
- Firebase 프로젝트 생성: Firebase 콘솔에서 새 프로젝트를 생성한다.
- Firebase CLI 설치: Firebase CLI를 설치한다.
npm install -g firebase-tools
- Firebase 로그인: Firebase CLI를 통해 로그인한다. 브라우저로 로그인창이 뜨게 된다.
firebase login
- Firebase 프로젝트 초기화: Firebase 프로젝트를 초기화한다.
firebase init
Functions
를 선택하고, 필요한 설정을 진행한다.- Node.js 버전을 선택하고, 에뮬레이터 설정을 선택할 수 있다.
Firebase Functions 작성
-
기본 구조:
functions
폴더 내부의index.js
파일에서 코드를 작성한다.const functions = require('firebase-functions'); // HTTP 요청을 처리하는 함수 exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); });
-
종류별 함수:
- HTTP 함수: HTTP 요청을 처리한다.
exports.helloWorld = functions.https.onRequest((request, response) => { response.send("Hello from Firebase!"); });
- 배포 트리거 함수: Firebase의 다양한 이벤트(예: Firestore 문서 생성, 업데이트, 삭제 등)에 반응한다.
exports.firestoreTrigger = functions.firestore.document('collection/{docId}') .onCreate((snap, context) => { const newValue = snap.data(); // 트리거된 이벤트에 대한 처리 로직 });
- HTTP 함수: HTTP 요청을 처리한다.
Firebase Functions 배포
- 배포 명령: Firebase CLI를 사용하여 함수를 배포한다.
firebase deploy --only functions
Firebase Functions 추가 사용법
-
로컬 테스트: Firebase 에뮬레이터를 사용하여 로컬에서 함수를 테스트할 수 있다.
firebase emulators:start
이를 통해 실제 배포 전에 함수를 로컬 환경에서 검증할 수 있다.
-
환경 변수 설정: 민감한 정보를 환경 변수로 설정하여 관리할 수 있다.
firebase functions:config:set someservice.key="THE API KEY"
const functions = require('firebase-functions'); const apiKey = functions.config().someservice.key;
-
의존성 추가:
package.json
파일을 수정하여 필요한 Node.js 패키지를 추가하고 설치한다.npm install axios
-
데이터베이스와 연동: Firestore 또는 Realtime Database와 연동하여 데이터를 처리할 수 있다.
const admin = require('firebase-admin'); admin.initializeApp(); exports.addData = functions.https.onRequest(async (req, res) => { const writeResult = await admin.firestore().collection('collection').add({original: req.query.text}); res.json({result: `Message with ID: ${writeResult.id} added.`}); });
자세한 내용은 Firebase 공식 문서를 참고할 수 있다.