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이 동적 링크 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 로 설정합니다. 이 설정을 사용하면 Hosting은 요청 시 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

    (선택사항) 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
    } ]