Catch up on highlights from Firebase at Google I/O 2023. Learn more

Настройка личного домена для динамических ссылок

Вы можете лучше контролировать брендинг своих динамических ссылок, используя свой собственный домен вместо поддомена 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

Часть URL link-suffix называется префиксом URL-адреса и содержит как ваш собственный домен динамической ссылки, так и префикс пути. Вам нужно будет указать префикс URL-адреса при создании динамических ссылок.

Для настройки личного домена требуется разрешение редактора или владельца вашего проекта Firebase.

Использование вашего веб-домена для динамических ссылок

Вы можете использовать один и тот же домен для динамических ссылок и веб-страниц, универсальных ссылок и ссылок на приложения, но если вы это сделаете, вы должны позаботиться о том, чтобы ваши URL-адреса динамических ссылок не конфликтовали с вашими веб-URL-адресами. Когда вы настраиваете динамические ссылки для использования определенного префикса URL-адреса, все URL-адреса, начинающиеся с этого префикса, обрабатываются как динамические ссылки, поэтому вы не можете использовать URL-адреса с этим префиксом для указания на обычное размещенное содержимое.

Например, если вы хотите создать динамическую ссылку на ресурс https://example.com/my-resource (веб-страницу, универсальную ссылку или ссылку на приложение), вы не можете использовать https://example.com/ в качестве префикса URL-адреса динамических ссылок, потому что это приведет к тому, что https://example.com/my-resource будет рассматриваться как динамическая ссылка. Вместо этого вы должны использовать префикс URL либо с другим доменом, либо с другим префиксом пути.

Таким образом, следующие длинные динамические ссылки (и эквивалентные короткие ссылки) не будут работать должным образом, поскольку URL-адреса, указанные параметром 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-адресов не конфликтуют с URL- link :

 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 : в файле Info.plist вашего проекта Xcode создайте ключ с именем FirebaseDynamicLinksCustomDomains и задайте для него префиксы URL-адресов динамических ссылок вашего приложения. Например:

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

Настройте личный домен вручную

В некоторых ситуациях, например, когда у вас уже настроен личный домен для динамических ссылок и вы хотите добавить еще один домен, или когда вы добавляете домен, уже подключенный к сайту хостинга, вам необходимо настроить личный домен вручную.

Для этого:

  1. Подключите свой домен к Firebase Hosting, если вы еще этого не сделали.

    Настройка вашего домена с помощью Firebase Hosting включает создание файла конфигурации firebase.json в вашем локальном каталоге проекта.

  2. Обновите Firebase CLI до последней версии (v6.5.0 или новее).

  3. Настройте свой хостинг-сайт для динамических ссылок в файле firebase.json вашего проекта. Если в вашем проекте несколько сайтов, обязательно настройте сайт, подключенный к домену, который вы хотите использовать.

    • Установите appAssociation значение AUTO . С этим параметром хостинг динамически генерирует файлы assetlinks.json и apple-app-site-association по запросу.

    • Укажите префиксы пути, которые вы хотите использовать для динамических ссылок, задав правила перезаписи с параметром dynamicLinks равным true . Запросы к этим путям перенаправляются в динамические ссылки.

      В отличие от правил, которые переписывают пути к URL-адресам, правила перезаписи динамических ссылок не могут содержать регулярные выражения.

      Если у вас есть несколько правил перезаписи для вашего сайта, имейте в виду, что хостинг выполняет первое правило перезаписи, соответствующее запросу.

    Например:

    "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

    (необязательно) Вы можете проверить развернутое содержимое firebase.json с помощью Hosting REST API .

  5. Только для iOS : в файле Info.plist вашего проекта Xcode создайте ключ с именем FirebaseDynamicLinksCustomDomains и задайте для него префиксы URL-адресов динамических ссылок вашего приложения. Например:

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

Приоритетный порядок для динамических ссылок и хостинга

Для динамических ссылок обратите особое внимание на порядок приоритета хостинга .

  • Убедитесь, что ваш префикс URL-адреса динамических ссылок не конфликтует с конфигурациями хостинга с более высоким приоритетом (например, размещенное статическое содержимое всегда имеет приоритет над перезаписью).
  • В атрибуте rewrites ответ Hosting будет подчиняться правилу, заданному первым source глобусом, который фиксирует запрошенный путь .

Например, если вы настроили динамическую ссылку для 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
    } ]