Files
fanuzu/app/firebase/functions/src/core/bootstrap.ts
T

20 lines
1.1 KiB
TypeScript

import { initializeApp } from 'firebase-admin/app';
import { setGlobalOptions } from 'firebase-functions/v2';
/**
* 런타임 전역 설정 — **함수 정의보다 먼저 서야 한다.**
*
* 예전에는 `index.ts` 본문에서 `setGlobalOptions()` 를 불렀는데, ES 모듈은 `export …
* from` 을 **본문보다 먼저** 평가한다. 그래서 모든 `onCall` 이 만들어진 뒤에야 리전이
* 정해졌고, 함수는 전부 기본 리전(`us-central1`)에 실렸다. 앱은 서울(`asia-northeast3`)로
* 부르므로 **모든 Callable 이 `NOT_FOUND`** 로 떨어진다 — 원인이 「함수가 없다」처럼
* 보여 찾기 어려운 자리다(에뮬레이터 왕복에서 실측).
*
* 이 파일을 `index.ts` 의 **첫 import** 로 두면 같은 규칙이 반대로 작동한다. import 는
* 선언 순서대로 평가되므로, 함수 모듈보다 먼저 여기가 돈다.
*/
initializeApp();
// 리전을 서울로 고정한다. 기본값(us-central1)이면 왕복 지연이 그대로 체감된다.
setGlobalOptions({ region: 'asia-northeast3', maxInstances: 20 });