본문 바로가기

PROGRAMING/FLUTTER

firebase function 고고 설치 (TypeScript로 안하고 javscript로 하려다가 다시 typescript로) 로 했다.

firebase init
npm install -g typescript
npm install -g ts-node


일단 여기까지 firebase init 해서 function 하고 잘 설치하자 스크립트는 typescript로 했다.

function\index.ts 파일을 수정한다.

import * as functions from 'firebase-functions';

// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
// export const helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });

exports.helloWorld = functions.https.onRequest((request, response) => {
    response.send("Hello from Firebase!");
  });

firebase deploy --only functions

firebase에 디플로이를 먼저하고

이렇게 하면 

https://us-central1-royuta-14e17.cloudfunctions.net/helloWorld
이렇게 바로 접속할수도 있고 아래와 같이 에뮬레이터를 키면 
firebase emulators:start       
 



http://localhost:5001/royuta-14e17/us-central1/helloWorld
로컬로 접속도된다.


typescript 로 하다가 javascript 로 한 이유는 hot reloading 이 되지 않아서이다.
typescript로 하려면 컴파일하고 에뮬레이터를 다시 올려야했다.

그런데 javascript로 하면 바로 바로 적용되었다.


firebase에서도 typescript  로 하려면 npm run build로 빌드해야한다고 나와있다
에뮬레이터 하기전에
그리고 에뮬레이터를 돌려도 수정한게 자동 빌드가 되지 않았다.


그래서 안하려고 했는데   방법을 알아버렸다.
일단 터미널 shell을 두개 띄워야한다.
그리고 function\package.json 을 수정해야한다.
"build":"tsc" 를 
"build":"tsc -w"  로 고친다.
그리고 shell을 하나 열어서 "functions 폴더로 이동후 "  npm run build를 해준다.
그러면 이제 저장될때마다 컴파일이 된다.
다른 shell을 하나더 열어서
firebase emulators:start  를 실행해준다.
이제 한쪽에서 저장되면 build가 되고 에뮬레이터는 인식한다.