본문 바로가기

카테고리 없음

[Firebase] Function을 다뤄보자

Firebase Database만으로 앱을 구현하기 힘든 상황이 왔다.

 

결국  Backend 단에서 처리해줘야 하는 일들이 생겨나게 되었고, App에서 모든것을 처리해주기 버거운 상황이다.

 

Firebase Function을 쓰면 Node.js 기반으로 Function 을 만들어서 사용할 수가 있는데, 유료이다.

 

무료버전 Firebase사용자들은 할 수 없다.

 

어차피 회사에서 쓰는 계정이 이번에 유료로 바뀌었기 때문에 공부도 할 겸 해보도록 하자.

 

공식 홈페이지 글은 다음과 같다.

https://firebase.google.com/docs/functions?authuser=0 

 

Firebase용 Cloud Functions  |  Firebase Documentation

의견 보내기 Firebase용 Cloud Functions plat_ios plat_android plat_web plat_cpp plat_unity Firebase용 Cloud Functions는 Firebase 기능과 HTTPS 요청에 의해 트리거되는 이벤트에 응답하여 백엔드 코드를 자동으로 실행할

firebase.google.com

 

1. 환경설정

일단 이 글은 Mac OS 사용자를 기준으로 작성이 되었다.

 

Firebase Function을 쓰려면 우선 Node.js와 Firebase CLI가 설치되어야 한다.

 

 - Node.js 설치경로

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 - CLI 설치방법

https://firebase.google.com/docs/cli?authuser=0#setup_update_cli 

 

Firebase CLI 참조  |  Firebase Documentation

Test SDK for Cloud Functions for Firebase

firebase.google.com

내 컴퓨터엔 npm이 설치 되어 있지 않아서, 한번에 설치하는 명령어를 이용해서 설치했다.

 

curl -sL https://firebase.tools | bash

 

2. 시작하기

환경설정이 완료되었으면, CLI를 이용하여 로그인 및 init 을 진행할 차례이다.

 

우선 로그인을 수행한다.

firebase login

로그인을 진행하면, 브라우저가 열리면서 실제 구글 아이디 로그인을 하라고 한다.

엔터를 누르면 기본값인 Yes가 입력되며 브라우저 창이 열리면서, 구글 로그인 화면으로 전환된다. 계정을 선택하여 로그인하면, 다음과 같이 나타나게 된다.

로그인이 완료되면, 현재 내 프로젝트가 무엇이 있는지 확인해보기 위해 다음의 명령어를 입력한다.

firebase projects:list

그럼 firebase 내의 내 프로젝트 리스트가 나타나게 된다.

 

 

다음으로 Function을 정의할 폴더를 하나 생성한다.

그 뒤 해당 폴더에서 다음과 같이 입력한다.

firebase init

 

init 을 수행하면 다음과 같이 어떤 작업을 수행할 지 나타나는데, function을 선택하고 space bar를 눌러줘서 선택하면된다.

위 작업을 한번에 싶다면 아래와 같이 입력해도 된다.

firebase init functions

init이 완료되면, java script 기반의 폴더 및 환경설정 파일들이 생성이 된다.

 

index.js를 열어보면 helloWorld라는 기본 함수가 주석과 함께 생성이 된 것을 확인 할 수 있다.

const functions = require("firebase-functions");

 // Create and Deploy Your First Cloud Functions
 // https://firebase.google.com/docs/functions/write-firebase-functions

 exports.helloWorld = functions.https.onRequest((request, response) => {
   functions.logger.info("Hello logs2!", {structuredData: true});
   response.send("Hello from Firebase22!, It's cicumuns function");ß
 });

 

3. 배포하기

작성된 Function을 배포하려면 다음과 같이 입력하면된다.

$ firebase deploy

 

그 뒤 Firebase Console의 Function을 확인해보면, 내가 작성한 function이 추가된 것을 확인할 수 있다.

 

생성된 API를 호출하면 정상적으로 메시지가 출력되는 것을 확인할 수 있다.