Dynamic Links のブランディングを詳細に管理するには、page.link
サブドメインではなく、独自のドメインを使用します。カスタム ドメインを使用すると、次の例のような Dynamic Links を作成できます。
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
URL の link-suffix より前の部分は URL 接頭辞 と呼ばれ、Dynamic Link のカスタム ドメインとパス接頭辞が含まれています。Dynamic Links を作成するときに、URL 接頭辞を指定する必要があります。
カスタム ドメインを設定するには、Firebase プロジェクトに対する編集者またはオーナーの権限が必要です。
Dynamic Links にウェブドメインを使用する
Dynamic Links とウェブページ、ユニバーサル リンク、アプリリンクに同じドメインを使用できますが、その場合は、Dynamic Link URL がウェブ URL と競合しないように注意する必要があります。特定の URL 接頭辞を使用するように Dynamic Links を構成している場合、その接頭辞で始まるすべての URL が Dynamic Links として扱われるため、その接頭辞を含む URL を使用して通常のホストされたコンテンツを参照することはできません。
たとえば、リソース https://example.com/my-resource
(ウェブページ、ユニバーサル リンク、アプリリンク)の Dynamic Link を作成する場合に Dynamic Links URL 接頭辞として https://example.com/
を使用すると、https://example.com/my-resource
が Dynamic Link として扱われるため、この接頭辞は使用できません。代わりに、別のドメインまたは別のパス接頭辞を含む URL 接頭辞を使用する必要があります。
したがって、次に示す長い形式の Dynamic Links(および同等な短いリンク)は、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
ただし、次に示す長い形式の Dynamic Links(および同等な短いリンク)は、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 コンソールですべて設定できます。方法は次のとおりです。
プロジェクトに Firebase Hosting を設定していない場合は、Firebase コンソールの [Hosting] ページを開き、[使ってみる] をクリックして設定手順を進めます。この時点で指示された手順を完了する必要はありません。
Firebase コンソールの Dynamic Links ページを開きます。
Dynamic Links を初めて使用する場合は、[使ってみる] をクリックします。それ以外の場合は、プルダウン メニューから [URL 接頭辞を追加] をクリックします。
次に設定ウィザードを完了し、プロンプトが表示されたら、使用するドメインとパス接頭辞を指定します。
iOS のみ: Xcode プロジェクトの
Info.plist
ファイル内でFirebaseDynamicLinksCustomDomains
キーを作成し、アプリの Dynamic Links URL 接頭辞にこのキーを追加します。次に例を示します。<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
カスタム ドメインを手動で設定する
Dynamic Links のカスタム ドメインがすでに設定されていて別のドメインを追加する場合や、Hosting サイトにすでに接続されているドメインを追加する場合は、状況に応じてカスタム ドメインを手動で設定する必要があります。
手順は次のとおりです。
まだドメインを Firebase Hosting に接続していない場合は、接続します。
Firebase Hosting を使用してドメインを設定するには、ローカル プロジェクトのディレクトリ内に構成ファイル
firebase.json
を作成します。最新バージョンの Firebase CLI に更新します(v6.5.0 以降)。
プロジェクトの
firebase.json
ファイルで、Dynamic Links 用の Hosting サイトを構成します。プロジェクトに複数のサイトが含まれている場合は、使用するドメインに接続されているサイトを構成してください。[
appAssociation
] を [AUTO
] に設定します。このように設定すると、assetlinks.json
ファイルとapple-app-site-association
ファイルがリクエストされたときに、Hosting がこれらを動的に生成します。dynamicLinks
をtrue
に設定して書き換えルールを設定することにより、Dynamic Links に使用するパス接頭辞を指定します。これらのパスに対するリクエストは、Dynamic Links にプロキシされます。URL のパスを書き換えるルールとは異なり、Dynamic Link の書き換えルールに正規表現を含めることはできません。
ご使用のサイトに複数の書き換えルールがある場合は、リクエストと一致する最初の書き換えルールが Hosting によって実行されることにご注意ください。
次に例を示します。
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
上記の構成を使用すると、次の例のような URL 接頭辞を持つ Dynamic Links を作成できます。
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
このドメインを Dynamic Links 専用にする場合は、
/**
というソースパスを使用して、パス接頭辞を持たない Dynamic Links を作成します。{ "source": "/**", "dynamicLinks": true }
上記のルールを使用して、次の例のような Dynamic Links を作成できます。
https://your-domain/link-suffix
Hosting 構成に関する変更をデプロイします。
firebase deploy --only hosting
(省略可)デプロイされた
firebase.json
の内容は、Hosting REST API を使用して確認できます。iOS のみ: Xcode プロジェクトの
Info.plist
ファイル内でFirebaseDynamicLinksCustomDomains
キーを作成し、アプリの Dynamic Links URL 接頭辞にこのキーを追加します。次に例を示します。<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Dynamic Links と Hosting の優先順位
Dynamic Links では、ホスティングの優先順位に特に注意してください。
- Dynamic Links URL 接頭辞は、それよりも優先度の高いホスティング構成と競合しないようにします。たとえば、ホストされる静的コンテンツは必ずリライトよりも優先されます。
rewrites
属性内では、Hosting のレスポンスは、リクエストされたパスをキャプチャする最初のsource
glob によって指定されたルールに従います。
たとえば、your-domain/source-path/link-suffix
の Dynamic Link が設定されていて、your-domain/source-path/index.html
に静的コンテンツがある場合は、静的コンテンツが優先されます。エンドユーザーには Dynamic Link ではなく index.html
が表示されます。同様に your-domain/source-path/link-suffix
に静的コンテンツがある場合は、エンドユーザーには Dynamic Link ではなく静的コンテンツが表示されます。
Dynamic Links と Hosting の両方に同じブランディングを使用する場合は、Dynamic Links URL 接頭辞に次のいずれかのオプションを使用することを検討してください。
パス接頭辞と一致するように
source
属性を設定します。たとえば、example.com
というカスタム ドメインがある場合は、再書き込みルールを次のようにします。// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Dynamic Links に使用するサブドメインを設定し、そのサブドメインと一致するように
source
属性を設定します。たとえば、links.example.com
というサブドメインがある場合は、再書き込みルールを次のようにします。// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]