Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

동적 링크에 대한 사용자 정의 도메인 설정

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

page.link 하위 도메인 대신 자체 도메인을 사용하여 동적 링크의 브랜딩을 더 잘 제어할 수 있습니다. 사용자 정의 도메인을 사용하면 다음 예와 같이 동적 링크를 생성할 수 있습니다.

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

link-suffix 앞의 URL 부분을 URL 접두사 라고 하며 사용자 지정 동적 링크 도메인과 경로 접두사를 모두 포함합니다. 동적 링크를 생성할 때 URL 접두사를 제공해야 합니다.

맞춤 도메인을 설정하려면 Firebase 프로젝트에 대한 편집자 또는 소유자 권한이 필요합니다.

동적 링크에 웹 도메인 사용

동적 링크와 웹 페이지, 범용 링크 및 앱 링크에 대해 동일한 도메인을 사용할 수 있지만 그렇게 하는 경우 동적 링크 URL이 웹 URL과 충돌하지 않도록 주의해야 합니다. 특정 URL 접두사를 사용하도록 동적 링크를 구성하면 해당 접두사로 시작하는 모든 URL이 동적 링크로 처리되므로 해당 접두사가 있는 URL을 사용하여 일반 호스팅 콘텐츠를 가리킬 수 없습니다.

예를 들어 https://example.com/my-resource 리소스(웹 페이지, 유니버설 링크 또는 앱 링크)에 대한 동적 링크를 생성하려는 경우 https://example.com/ 을 사용할 수 없습니다. https://example.com/ 를 동적 링크 URL 접두사로 사용합니다. 이렇게 하면 https://example.com/my-resource 가 동적 링크로 처리되기 때문입니다. 대신, 다른 도메인이나 다른 경로 접두어와 함께 URL 접두사를 사용해야 합니다.

따라서 link 매개변수로 지정된 URL이 Dynamic Link URL 접두사 https://example.com/ 으로 시작하기 때문에 다음과 같은 긴 형식의 동적 링크(및 이에 상응하는 짧은 링크)가 의도한 대로 작동하지 않습니다.

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

그러나 URL 접두사가 link URL과 충돌하지 않기 때문에 다음과 같은 긴 형식의 동적 링크(및 이에 상응하는 짧은 링크)가 작동할 수 있습니다.

 https://link.example.com/?link=https://example.com/my-resource
 https://example.com/links/?link=https://example.com/my-resource
 https://ex.amp.le/?link=https://example.com/my-resource

Firebase 콘솔에서 맞춤 도메인 설정

일반적으로 Firebase 콘솔에서 사용자 정의 도메인을 완전히 설정할 수 있습니다. 이렇게 하려면:

  1. 프로젝트에 Firebase 호스팅을 설정하지 않은 경우 Firebase 콘솔의 호스팅 페이지 를 열고 시작하기 를 클릭한 다음 설정 지침을 클릭합니다. 지금은 표시된 단계를 완료할 필요가 없습니다.

  2. Firebase 콘솔의 동적 링크 페이지 를 엽니다.

  3. 이전에 동적 링크를 사용한 적이 없다면 시작하기 를 클릭하십시오 . 그렇지 않으면 드롭다운 메뉴에서 URL 접두사 추가 를 클릭합니다.

    그런 다음 메시지가 표시될 때 사용할 도메인 및 경로 접두사를 지정하여 설정 마법사를 완료합니다.

  4. iOS만 해당 : Xcode 프로젝트의 Info.plist 파일에서 FirebaseDynamicLinksCustomDomains 라는 키를 만들고 앱의 동적 링크 URL 접두사로 설정합니다. 예를 들어:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

수동으로 사용자 지정 도메인 설정

동적 링크에 대한 사용자 지정 도메인이 이미 설정되어 있고 다른 도메인을 추가하려는 경우 또는 호스팅 사이트에 이미 연결된 도메인을 추가하는 경우와 같은 일부 상황에서는 사용자 지정 도메인을 수동으로 설정해야 합니다.

이렇게 하려면:

  1. 아직 도메인을 Firebase 호스팅에 연결하지 않은 경우 연결합니다 .

    Firebase 호스팅으로 도메인을 설정하는 작업에는 로컬 프로젝트 디렉토리에 구성 파일 firebase.json 생성이 포함됩니다.

  2. 최신 버전의 Firebase CLI(v6.5.0 이상)로 업데이트합니다 .

  3. 프로젝트의 firebase.json 파일에서 동적 링크에 대한 호스팅 사이트를 구성합니다. 프로젝트에 여러 사이트가 있는 경우 사용하려는 도메인에 연결된 사이트를 구성해야 합니다.

    • appAssociationAUTO 로 설정합니다. 이 설정을 사용하면 호스팅은 assetlinks.jsonapple-app-site-association 파일이 요청될 때 동적으로 생성합니다.

    • dynamicLinkstrue 로 설정하여 재작성 규칙을 설정하여 동적 링크에 사용할 경로 접두사를 지정하십시오. 이러한 경로에 대한 요청은 동적 링크로 프록시 처리됩니다.

      URL에 대한 경로를 재작성하는 규칙과 달리 Dynamic Link 재작성 규칙은 정규식을 포함할 수 없습니다.

      사이트에 대한 재작성 규칙이 여러 개인 경우 호스팅은 요청과 일치하는 첫 번째 재작성 규칙을 실행한다는 점에 유의하십시오.

    예를 들어:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    위의 구성을 사용하여 다음 예와 같은 URL 접두사를 사용하여 동적 링크를 생성할 수 있습니다.

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    동적 링크에만 이 도메인을 사용하는 경우 /** 의 소스 경로를 사용하여 경로 접두사 없이 동적 링크를 생성할 수 있습니다.

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    위의 규칙을 사용하여 다음 예제와 같은 동적 링크를 만들 수 있습니다.

    https://your-domain/link-suffix

  4. 호스팅 구성 변경 사항 배포:

    firebase deploy --only hosting

    (선택 사항) 호스팅 REST API 를 사용하여 배포된 firebase.json 콘텐츠를 확인할 수 있습니다.

  5. iOS만 해당 : Xcode 프로젝트의 Info.plist 파일에서 FirebaseDynamicLinksCustomDomains 라는 키를 만들고 앱의 동적 링크 URL 접두사로 설정합니다. 예를 들어:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

동적 링크 및 호스팅의 우선 순위

동적 링크의 경우 호스팅 우선 순위 에 특히 유의하십시오.

  • 동적 링크 URL 접두사가 더 높은 우선 순위의 호스팅 구성과 충돌하지 않는지 확인합니다(예: 호스팅된 정적 콘텐츠는 항상 재작성보다 우선 순위가 높음).
  • rewrites 속성 내에서 호스팅 응답은 요청된 경로를 캡처하는 첫 번째 source glob 에서 지정한 규칙을 따릅니다.

예를 들어 your-domain / source-path / link-suffix 에 대한 동적 링크를 설정했지만 your-domain / source-path /index.html 에도 정적 콘텐츠가 있는 경우 정적 콘텐츠가 우선합니다. 최종 사용자는 동적 링크가 아닌 index.html 을 보게 됩니다. 마찬가지로 your-domain / source-path / link-suffix 에 정적 콘텐츠가 있는 경우 최종 사용자는 동적 링크가 아닌 정적 콘텐츠를 보게 됩니다.

동적 링크와 호스팅 모두에 동일한 브랜드를 사용하려면 동적 링크 URL 접두사에 대해 다음 옵션 중 하나를 고려하십시오.

  • 경로 접두사와 일치하도록 source 속성을 설정하십시오. 예를 들어 example.com 의 사용자 정의 도메인이 있는 경우 재작성 규칙은 다음과 같을 수 있습니다.

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • 동적 링크에 사용할 하위 도메인을 설정한 다음 해당 하위 도메인과 일치하도록 source 속성을 설정합니다. 예를 들어, links.example.com 의 하위 도메인이 있는 경우 재작성 규칙은 다음과 같을 수 있습니다.

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]