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

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

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

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

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

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

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

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

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

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

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

Для этого:

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

    Настройка вашего домена с Firebase хостинга включает в себя создание файла конфигурации 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 содержимого с помощью хостинга REST API .

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

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

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

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

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

Например, если вы создали 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.

Если вы хотите использовать один и тот же брендинг как для динамических ссылок, так и для хостинга, рассмотрите один из следующих вариантов префикса 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
    } ]