Firebase Dynamic Links Builder API를 사용하여 짧거나 긴 동적 링크를 만들 수 있습니다. 이 API는 긴 동적 링크 또는 동적 링크 매개변수가 포함된 객체를 취하며 다음 예시와 같은 URL을 반환합니다.
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Firebase 및 동적 링크 SDK 설정
Android 앱에서 동적 링크를 만들려면 우선 Firebase SDK를 포함해야 합니다. 앱이 동적 링크를 수신하도록 설정되어 있다면 필요한 단계를 이미 완료한 것이므로 이 섹션을 건너뛰어도 무방합니다.
- 아직 수행하지 않았으면 Flutter의 Firebase SDK를 설치하고 초기화합니다. 
- Flutter 프로젝트의 루트 디렉터리에서 다음 명령어를 실행하여 동적 링크 플러그인을 설치합니다. - flutter pub add firebase_dynamic_links
- Android 앱을 빌드하는 경우 Firebase Console의 프로젝트 설정 페이지를 열고 SHA-1 서명 키를 지정했는지 확인합니다. 앱 링크를 사용하는 경우에도 SHA-256 키를 지정합니다. 
- Firebase Console에서 동적 링크 섹션을 엽니다. - 동적 링크의 도메인을 아직 설정하지 않았다면 시작하기 버튼을 클릭하고 표시되는 메시지를 따릅니다. - 동적 링크 도메인이 있다면 기록해 둡니다. 프로그래매틱 방식으로 동적 링크를 만들 때 동적 링크 도메인을 제공해야 합니다.  
- 권장: '더보기'(⋮) 메뉴에서 딥 링크와 대체 링크에 허용되는 URL 패턴을 지정합니다. 이렇게 하면 승인되지 않은 사용자가 내 도메인에서 내가 제어하지 않는 사이트로 리디렉션되는 동적 링크를 만드는 것을 막을 수 있습니다. - 특정 URL 패턴 허용을 참조하세요. 
 
매개변수로 동적 링크 만들기
동적 링크를 만들려면 새 DynamicLinkParameters 객체를 만들어 buildLink() 또는 buildShortLink()에 전달합니다.
다음은 Android의 경우 com.example.app.android, iOS의 경우 com.example.app.ios 앱에서 열리는 https://www.example.com/의 긴 동적 링크를 만드는 간단한 예시입니다.
final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
짧은 동적 링크를 만들려면 DynamicLinkParameters 객체를 buildShortLink()에 전달합니다. 짧은 링크를 작성하려면 네트워크 호출이 필요합니다.
예를 들면 다음과 같습니다.
final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
기본적으로 짧은 동적 링크는 몇 문자 길이의 서픽스로 생성됩니다. 이렇게 하면 링크가 더 간결해지지만, 누군가가 유효한 짧은 링크를 추측할 수도 있습니다. 누군가 그렇게 하더라도 이 링크는 공개 정보로 연결되기 때문에 대부분 피해가 없습니다.
하지만 짧은 링크가 사용자 관련 정보로 연결되는 경우, 누군가가 유효한 동적 링크를 추측하는 것이 거의 불가능하도록 17자로 된 서픽스를 포함하는 긴 링크를 만들어야 합니다. 이렇게 하려면 ShortDynamicLinkType.unguessable을 buildShortLink() 메서드에 전달합니다.
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);
동적 링크 파라미터
Dynamic Link Builder API를 사용하여 지원되는 매개변수로 동적 링크를 만들 수 있습니다. API 참조를 참조하세요.
다음 예에서는 몇 가지 일반적인 매개변수를 설정하여 동적 링크를 만듭니다.
final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(
    packageName: "com.example.app.android",
    minimumVersion: 30,
  ),
  iosParameters: const IOSParameters(
    bundleId: "com.example.app.ios",
    appStoreId: "123456789",
    minimumVersion: "1.0.1",
  ),
  googleAnalyticsParameters: const GoogleAnalyticsParameters(
    source: "twitter",
    medium: "social",
    campaign: "example-promo",
  ),
  socialMetaTagParameters: SocialMetaTagParameters(
    title: "Example of a Dynamic Link",
    imageUrl: Uri.parse("https://example.com/image.png"),
  ),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
다음과 같은 방법으로 동적 링크 매개변수를 설정할 수 있습니다.
| DynamicLink 매개변수 | |
|---|---|
| setLink | 앱에서 열리는 링크입니다. 앱이 처리할 수 있는 URL(일반적으로 앱의 콘텐츠 또는 페이로드)을 지정할 수 있으며, 이를 통해 사용자에게 쿠폰을 지급하거나 시작 화면을 표시하는 등 앱의 특정 로직을 시작할 수 있습니다. 이 링크는 올바른 형식의 URL이어야 하며, HTTP 또는 HTTPS를 사용하여 적절한 URL 인코딩을 적용해야 합니다. 또한 다른 동적 링크가 아니어야 합니다. | 
| setDomainUriPrefix | Firebase Console에서 확인할 수 있는 동적 링크 URL 프리픽스입니다. 동적 링크 도메인 형식은 다음 예와 같습니다. https://example.com/link https://example.page.link | 
| AndroidParameters | |
|---|---|
| setFallbackUrl | 앱이 설치되지 않았을 때 열리는 링크입니다. 앱이 설치되지 않았을 때 Play 스토어에서 앱을 설치하는 것 이외에 콘텐츠의 모바일 웹 버전 열기, 앱 홍보 페이지 표시 등의 다른 작업을 수행하려는 경우 이 매개변수를 지정합니다. | 
| setMinimumVersion | 링크를 열 수 있는 최소 앱 버전의 versionCode입니다. 설치된 앱이 이전 버전이라면 앱을 업그레이드하기 위해 Play 스토어로 이동합니다. | 
| IosParameters | |
|---|---|
| setAppStoreId | 앱이 설치되지 않은 경우 사용자를 App Store로 보내는 데 사용되는 앱의 App Store ID입니다. | 
| setFallbackUrl | 앱이 설치되지 않았을 때 열리는 링크입니다. 앱이 설치되지 않았을 때 App Store에서 앱을 설치하는 것 이외에 콘텐츠의 모바일 웹 버전 열기, 앱 홍보 페이지 표시 등의 다른 작업을 수행하려는 경우 이 매개변수를 지정합니다. | 
| setCustomScheme | 앱의 번들 ID와 다른 값으로 정의하면 앱의 커스텀 URL 스킴으로 사용됩니다. | 
| setIpadFallbackUrl | 앱이 설치되지 않은 경우 iPad에서 열리는 링크입니다. 앱이 설치되지 않았을 때 App Store에서 앱을 설치하는 것 이외에 콘텐츠의 웹 버전 열기, 앱 홍보 페이지 표시 등의 다른 작업을 수행하려는 경우 이 매개변수를 지정합니다. | 
| setIpadBundleId | iPad에서 링크를 여는 데 사용할 iOS 앱의 번들 ID입니다. Firebase Console의 개요 페이지에서 앱을 프로젝트에 연결해야 합니다. | 
| setMinimumVersion | 링크를 열 수 있는 최소 앱 버전의 버전 번호입니다. 이 플래그는 앱이 열렸을 때 앱에 전달되며 앱에서 수행할 작업을 결정해야 합니다. | 
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | '1'로 설정하는 경우, 동적 링크가 열리면 앱 미리보기 페이지를 건너뛰고 앱 또는 스토어로 리디렉션합니다. 기본적으로 사용 설정되는 앱 미리보기 페이지는 앱에서 동적 링크를 연 사용자를 가장 적절한 대상으로 더 안정적으로 안내할 수 있지만, 이 페이지 없이 동적 링크를 안정적으로 열 수 있는 앱에서만 동적 링크가 열리게 하려면 이 파라미터를 사용하여 리디렉션을 중지하면 됩니다. 이 매개변수는 iOS에서만 동적 링크의 동작에 영향을 미칩니다. | 
| SocialMetaTagParameters | |
|---|---|
| setTitle | 소셜 게시물에서 동적 링크를 공유할 때 사용되는 제목입니다. | 
| setDescription | 소셜 게시물에서 동적 링크를 공유할 때 사용되는 설명입니다. | 
| setImageUrl | 이 링크와 관련된 이미지의 URL입니다. 이미지는 300x200픽셀 이상, 300KB 미만이어야 합니다. | 
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent | Google Play 애널리틱스 매개변수입니다. 이러한 매개변수(`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`)는 Play 스토어에 전달될 뿐 아니라 링크 페이로드에도 추가됩니다. | 
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken | iTunes Connect 애널리틱스 매개변수입니다. 이러한 매개변수(`pt`, `at`, `ct`)는 App Store로 전달됩니다. |