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

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

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

Использование вашего веб-домена для Dynamic Links

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

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

Таким образом, следующие длинные Dynamic Links (и эквивалентные короткие ссылки) не будут работать так, как задумано, поскольку URL-адреса, указанные параметром link начинаются с префикса URL-адреса Dynamic Link , 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-адресов не конфликтуют с 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 Hosting для своего проекта, откройте страницу Hosting в консоли Firebase , нажмите «Начать» и следуйте инструкциям по настройке. На данном этапе вам не обязательно выполнять указанные шаги.

  2. Откройте страницу Dynamic Links консоли Firebase .

  3. Если вы ранее не использовали Dynamic Links , нажмите « Начать» . В противном случае нажмите «Добавить префикс URL» в раскрывающемся меню.

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

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

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

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

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

Для этого:

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

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

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

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

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

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

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

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

    Например:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    Используя указанную выше конфигурацию, вы можете создавать Dynamic Links с префиксами URL, как в следующих примерах:

    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

  4. Разверните изменения конфигурации вашего Hosting :

    firebase deploy --only hosting

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

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

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

Приоритетный порядок для Dynamic Links и Hosting

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

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

Например, если вы настроили Dynamic Link для your-domain / source-path / link-suffix но у вас также есть статический контент по адресу your-domain / source-path /index.html , приоритет будет иметь статический контент. Конечный пользователь увидит index.html вместо Dynamic Link . Аналогично, если у вас есть статический контент по адресу your-domain / source-path / link-suffix , конечный пользователь увидит статический контент вместо Dynamic Link .

Если вы хотите использовать один и тот же брендинг для Dynamic Links и Hosting , рассмотрите один из следующих вариантов для префикса URL-адреса Dynamic Links :

  • Настройте атрибут 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
    } ]