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가 되고 에뮬레이터는 인식한다.