Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

melius

[Firebase] 클라우드 함수 사용하기 본문

library & framework

[Firebase] 클라우드 함수 사용하기

melius102 2020. 1. 15. 15:19

1. Firebase 클라우드 함수(Cloud Functions) 사용하기

https://firebase.google.com/docs/functions/get-started

 

* 참고: Firebase 호스팅 시작하기

 

1) 프로젝트 초기화

$ firebase init functions

 

2) index.js 파일 수정

생성된 functions 폴더의 index.js 파일을 수정한다.

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

exports.functionName = functions.https.onRequest((req, res) => {
    let text = req.query.text;
    res.send(`firebase msg: ${text}`);
});

 

* Firebase Admin SDK를 사용하려면 firebase-admin 모듈을 설치한다.

https://firebase.google.com/docs/admin/setup

$ npm install firebase-admin

 

3) 로컬 테스트 및 배포

$ firebase serve --only functions

(로컬 서버 URL: http://localhost:5000/project_name/us-central1/functionName)

$ firebase deploy --only functions

(FB 서버 URL: https://us-central1-project_name.cloudfunctions.net/functionName)

 

 

2. Hosting으로 함수 접근하기

 

1) 프로젝트 폴더에 호스팅 추가하기

$ firebase init hosting

 

2) firebase.json 설정하기

https://firebase.google.com/docs/hosting/full-config

생성된 firebase.json 파일에 아래와 같이 "rewrites" 속성을 추가하여 Hosting에서 함수에 접근하기 위한 설정을 추가한다.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [{
      "source": "/fnn",
      "function": "functionName"
    }]
  }
}

 

3) 로컬 테스트

$ firebase serve --only hosting

(로컬 서버 URL: http://localhost:5000/fnn)

 

 

3. Express 프레임워크 연동하기

 

1) Express 앱 구성

functions 폴더에서 express 모듈을 설치한다.

$ npm install express

index.js 파일에 Express 앱을 생성한다.

* 루트경로('/')를 사용하기 위해서 public 폴더의 index.html을 삭제한다.

const functions = require('firebase-functions');
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    let text = req.query.text;
    res.send(`firebase app msg: ${text}`);
});

exports.app = functions.https.onRequest(app);

 

2) firebase.json 수정

"source" 속성값을 Express 앱의 url과 일치시키거나 "**" 로 작성한다.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [{
      "source": "**",
      "function": "app"
    }]
  }
}

 

3) 로컬 테스트 및 배포

$ firebase serve --only hosting,functions
$ firebase deploy --only hosting,functions

 

 

'library & framework' 카테고리의 다른 글

[React] 기본구조  (0) 2020.02.21
[websocket] WebSocket Implementation for Node.js  (0) 2020.02.11
[ws] Node.js WebSocket library  (0) 2020.02.03
[Handlebars] 사용법  (0) 2020.01.15
[Cordova] 디버깅(vh 단위 적용문제)  (0) 2020.01.11
Comments