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
link-suffixの前の URL の部分はURL プレフィックスと呼ばれ、カスタム Dynamic Link ドメインとパス プレフィックスの両方が含まれます。 Dynamic Links を作成するときは、URL プレフィックスを指定する必要があります。
カスタム ドメインを設定するには、Firebase プロジェクトに対する編集者または所有者の権限が必要です。
ダイナミック リンクにウェブ ドメインを使用する
ダイナミック リンクとウェブ ページ、ユニバーサル リンク、アプリ リンクに同じドメインを使用できますが、その場合、ダイナミック リンク URL がウェブ URL と競合しないように注意する必要があります。特定の URL プレフィックスを使用するようにダイナミック リンクを構成すると、そのプレフィックスで始まるすべての URL がダイナミック リンクとして扱われるため、そのプレフィックスを持つ URL を使用して通常のホストされているコンテンツを指すことはできません。
たとえば、リソースhttps://example.com/my-resource
(Web ページ、ユニバーサル リンク、またはアプリ リンク) へのダイナミック リンクを作成する場合、 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 コンソールでカスタム ドメインを完全に設定できます。そうするために:
プロジェクトに Firebase Hosting を設定していない場合は、Firebase コンソールの [ホスティング] ページを開き、[開始する] をクリックして、設定手順をクリックします。現時点では、示された手順を完了する必要はありません。
Firebase コンソールのダイナミック リンク ページを開きます。
以前に 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 用に既にカスタム ドメインが設定されていて、別のドメインを追加する場合や、ホスティング サイトに既に接続されているドメインを追加する場合など、状況によっては、カスタム ドメインを手動で設定する必要があります。
そうするために:
まだ行っていない場合は、ドメインを Firebase Hosting に接続します。
Firebase Hosting を使用してドメインをセットアップするには、ローカル プロジェクト ディレクトリに構成ファイル
firebase.json
を作成する必要があります。プロジェクトの
firebase.json
ファイルでダイナミック リンク用にホスティング サイトを構成します。プロジェクトに複数のサイトがある場合は、使用するドメインに接続されたサイトを構成してください。appAssociation
をAUTO
に設定します。この設定では、Hosting は、assetlinks.json
とapple-app-site-association
ファイルが要求されたときに動的に生成します。dynamicLinks
をtrue
に設定して書き換えルールを設定することにより、Dynamic Links に使用するパス プレフィックスを指定します。これらのパスへのリクエストは、ダイナミック リンクにプロキシされます。URL へのパスを書き換えるルールとは異なり、Dynamic Link 書き換えルールには正規表現を含めることはできません。
サイトに複数の書き換えルールがある場合、Hosting は要求に一致する最初の書き換えルールを実行することに注意してください。
例えば:
"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
ホスティング構成の変更をデプロイします:
firebase deploy --only hosting
(オプション) Hosting REST APIを使用して、デプロイされた
firebase.json
コンテンツを確認できます。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
のダイナミック リンクを設定し、 your-domain / source-path /index.html
にも静的コンテンツがある場合、静的コンテンツが優先されます。エンドユーザーには、ダイナミック リンクではなくindex.html
が表示されます。同様に、 your-domain / source-path / link-suffix
に静的コンテンツがある場合、エンドユーザーにはダイナミック リンクではなく静的コンテンツが表示されます。
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 } ]
ダイナミック リンクに使用するサブドメインを設定し、
source
属性をそのサブドメインに一致するように設定します。たとえば、links.example.com
のサブドメインがある場合、書き換えルールは次のようになります。// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]