Firebase 함수 도메인

Firebase 함수에 맞춤 도메인을 사용하는 방법

준비, 설정, 발사!

안녕하세요, Tom이 작성 중입니다! Firebase의 열렬한 사용자라면 백엔드없는 백엔드를 실제로 얼마나 간단하게 처리 할 수 있는지 알 것입니다. Firebase 함수 덕분에 비즈니스 로직을 일반 함수로 작성하고 CLI를 통해 바로이 함수를 배포하고 지구상의 모든 곳에서 클라우드에 도달 할 수 있습니다. 설정 자체는 매우 간단하여 배포에만 최대 몇 분 밖에 걸리지 않습니다. 그러나 Firebase에서 제공하는 도메인이 아닌 커스텀 도메인을 사용하는 등 추가 작업이 필요할 수있는 Firebase 함수의 특별한 경우가 있습니다.

도전

설명대로 Firebase 함수를 배포하면 Google의 하위 도메인, 특히

cloudfunctions.net

간단한 사용 사례의 경우 이것은 대부분 필요한 것입니다. 그냥 배포하고 사용할 수 있도록 만드십시오. 그러나 다른 사용 사례에서는 도메인에서 백엔드에 연결할 수 있어야합니다. 이 예에서는 고유 한 도메인 flaming.codes를 사용합니다.

설정

다음을 확인하기위한 전제 조건은 다음과 같습니다.

  • Firebase 프로젝트를 설정했습니다.
  • 호스팅에서 사용자 지정 도메인을 설정했습니다. 이는 호스팅 제공 업체에 TXT 레코드를 저장하기 만하면되는 간단한 프로세스입니다.

구성

실제로 커스텀 도메인이 호스팅 된 웹 앱뿐 아니라 함수에서도 작동하도록하려면 firebase.json을 업데이트해야합니다 (샘플 이후의 설명).

{
  "functions": {
    ...
  },
  "hosting": {
    ...,
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "!/api/**",
        "destination": "/index.html"
      }
    ]
  },
  ...
}

작동하도록 만드는 유일한 방법은 firebase.json에서 함수가 아닌 호스팅 키를 업데이트하는 것입니다. 우리가 기본적으로하는 일은 호스팅 된 웹 앱에서 / api / ...에 대한 모든 호출이 api라는 함수로 리디렉션되어야한다고 Firebase에 알리는 것입니다. 가장 오래 걸린 것은 두 번째 항목으로, 기본 웹 앱 경로로 처리 할 api 이외의 모든 경로를 명시 적으로 선언해야합니다.

다음 설정을 사용하여 이전 클라우드 기능

https://uscentral1-flaming-codes.cloudfunctions.net/api

따라서

https : //flaming.codes/api / ...

여기서 순서가 중요합니다. 재 작성 규칙은 첫 번째 요소에서 마지막 요소까지 처리되므로이 경우 시각적으로 위에서 아래로 처리됩니다. 와일드 카드를 사용하여 모든 함수를 다시 매핑하는 것은 웹 앱을 손상시킬 수 있으므로 일반적인 사용에는 권장되지 않습니다.

마무리

그리고 네, 정말 마법은 아니지만 특정 사용 사례에서 Firebase 함수를 사용할 때 크게 도움이 될 수 있습니다. 클라우드 기능을 이미 등록 된 도메인의 일부로 다시 작성하는 방법을 살펴 보았으므로 새로운 사용자 지정 하위 도메인에 대한 요구 사항이 제거되었습니다. 가능하지만이 자습서에서는 범위를 벗어납니다.

  • Tom