Firebase Cloud Functions × TypeScript

Firebase CLI 설치


$ npm install -g firebase-tools

Firebase 로그인


$ firebase login

Firebase Cloud Functions


$ firebase init functions

ESLit 패키지 설치


$ npm install --save-dev eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser prettier eslint-config-prettier eslint-plugin-prettier

.eslintrc.json


.eslintrc.json
{
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "prettier/@typescript-eslint"
  ],
  "plugins": [
    "@typescript-eslint"
  ],
  "env": { "node": true, "es6": true },
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "rules": {
  }
}

실행 링크


$ npm run lint:fix
$ npm run lint

로그인 함수


import * as functions from "firebase-functions";
import * as admin from "firebase-admin";

/**
cloudFirestore 設定
*/
admin.initializeApp(functions.config().firebase);
const f = functions.region("us-central1");

/**
onUpdate関数 設定
*/
export const onUpdate =
  f.firestore.document("test/test1")
      .onUpdate(async (change, context) => {
        const data = change.after.data();
        const sample = data.sample;

        const ansRef = sample.replace(/\r?\n/g, "");

        return change.after.ref.set({
          sample: ansRef,
        }, {merge: true});
      });

프로그램 설계


$ npm run deploy

참고 문헌

  • [Flutter] (처음) Firestore 데이터를 정기적으로 업데이트하기 위해 Cloud Function for Firebase 사용
  • TypeScript로 Cloud Function 쓰기
  • TSLint에서 벗어나 ESLight Type Script Plugin으로 이동
  • Cloud functions + typescript로 파일 분할하는 방법 (이후 응답 개선 등)
  • 클라우드 펀션을 깨끗이 정리하고 싶습니다.
  • 모든 줄 바꿈 삭제
  • Cloud Firestore 트리거
  • 좋은 웹페이지 즐겨찾기