Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. 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
    } ]