Konfigurowanie domeny niestandardowej na potrzeby Linków dynamicznych

Możesz mieć większą kontrolę nad brandingiem Dynamic Links', używając własnej domeny zamiast subdomeny page.link. Dzięki domenom niestandardowym możesz tworzyć Dynamic Links takie jak te w poniższych przykładach:

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

Część adresu URL przed link-suffix nazywa się prefiksem URL, i zawiera zarówno niestandardową domenę Dynamic Link, jak i prefiks ścieżki. Musisz podać prefiks adresu URL podczas tworzenia Dynamic Links.

Aby skonfigurować domenę niestandardową, musisz mieć uprawnienia Edytującego lub Właściciela w projekcie Firebase.

Używanie domeny internetowej w przypadku Dynamic Links

Możesz używać tej samej domeny w przypadku Dynamic Links i stron internetowych, linków uniwersalnych oraz linków aplikacji, ale jeśli to zrobisz, musisz uważać, aby adresy URL Dynamic Link nie kolidowały z adresami URL stron internetowych. Gdy skonfigurujesz Dynamic Links tak, aby używały określonego prefiksu URL, wszystkie adresy URL, które zaczynają się od tego prefiksu, będą traktowane jako Dynamic Links. Nie możesz więc używać adresów URL z tym prefiksem do wskazywania zwykłych treści hostowanych .

Jeśli na przykład chcesz utworzyć Dynamic Link do zasobu https://example.com/my-resource (strony internetowej, linku uniwersalnego lub linku aplikacji), nie możesz użyć https://example.com/ jako prefiksu URL Dynamic Links, ponieważ spowoduje to, że https://example.com/my-resource będzie traktowany jako Dynamic Link. Zamiast tego musisz użyć prefiksu URL z inną domeną lub innym prefiksem ścieżki.

Dlatego te długie Dynamic Links (i odpowiadające im krótkie linki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone przez parametr link zaczynają się od Dynamic Link prefiksu URL, https://example.com/:

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

Te długie Dynamic Links (i odpowiadające im krótkie linki) mogą jednak działać, ponieważ prefiksy URL nie kolidują z adresami 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

Konfigurowanie domeny niestandardowej w konsoli Firebase

Domenę niestandardową możesz zwykle skonfigurować w całości w konsoli Firebase. Aby to zrobić:

  1. Jeśli nie masz skonfigurowanego Firebase Hosting w swoim projekcie, otwórz stronę Hosting Firebase w konsoli, kliknij Rozpocznij i postępuj zgodnie z instrukcjami konfiguracji. Nie musisz teraz wykonywać wskazanych czynności.

  2. Otwórz stronę Dynamic Links w konsoli Firebase.

  3. Jeśli nie masz jeszcze skonfigurowanych Dynamic Links, kliknij Rozpocznij. W przeciwnym razie w menu rozwijanym kliknij Dodaj prefiks URL.

    Następnie dokończ pracę kreatora konfiguracji, podając domenę i prefiks ścieżki, których chcesz używać.

  4. Tylko iOS: w pliku Info.plist projektu Xcode utwórz klucz o nazwie FirebaseDynamicLinksCustomDomains i ustaw go na prefiksy URL Dynamic Links aplikacji. Przykład:

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

Ręczne konfigurowanie domeny niestandardowej

W niektórych sytuacjach, np. gdy masz już skonfigurowaną domenę niestandardową w przypadku Dynamic Links i chcesz dodać kolejną domenę lub gdy dodajesz domenę, która jest już połączona z witryną Hosting, musisz ręcznie skonfigurować domenę niestandardową.

Aby to zrobić:

  1. Połącz domenę z Firebase Hosting jeśli jeszcze tego nie zrobisz.

    Konfigurowanie domeny za pomocą Firebase Hosting obejmuje utworzenie pliku konfiguracyjnego firebase.json w katalogu projektu lokalnego.

  2. Zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji (6.5.0 lub nowszej).

  3. Skonfiguruj witrynę Hosting pod kątem Dynamic Links w pliku firebase.json projektu. Jeśli Twój projekt ma wiele witryn, skonfiguruj witrynę połączoną z domeną, której chcesz używać.

    • Ustaw appAssociation na AUTO. Dzięki temu ustawieniu Hosting dynamicznie generuje assetlinks.json i apple-app-site-association pliki, gdy są one wymagane.

    • Określ prefiksy ścieżek, których chcesz używać w przypadku Dynamic Links, ustawiając reguły przekierowania z wartością dynamicLinks ustawioną na true. Żądania do tych ścieżek są przekierowywane do Dynamic Links.

      W przeciwieństwie do reguł, które przekierowują ścieżki do adresów URL, Dynamic Link reguły przekierowania nie mogą zawierać wyrażeń regularnych.

      Jeśli masz wiele reguł przekierowania dla swojej witryny, pamiętaj, że Hosting wykonuje pierwszą regułę przekierowania, która pasuje do żądania.

    Przykład:

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

    Dzięki powyższej konfiguracji możesz tworzyć Dynamic Links z prefiksami URL, takimi jak te w poniższych przykładach:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    Jeśli używasz tej domeny tylko w przypadku Dynamic Links, możesz użyć ścieżki źródłowej /** aby utworzyć Dynamic Links bez prefiksu ścieżki:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    Dzięki powyższej regule możesz tworzyć Dynamic Links takie jak ten w poniższym przykładzie:

    https://your-domain/link-suffix

  4. Wdróż zmiany konfiguracji Hosting:

    firebase deploy --only hosting

    (Opcjonalnie) Możesz sprawdzić wdrożoną zawartość firebase.json za pomocą Hosting interfejsu REST API.

  5. Tylko iOS: w pliku Info.plist projektu Xcode utwórz klucz o nazwie FirebaseDynamicLinksCustomDomains i ustaw go na prefiksy URL Dynamic Links aplikacji. Przykład:

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

Kolejność priorytetów w przypadku Dynamic Links i Hosting

W przypadku Dynamic Links zwróć szczególną uwagę na kolejność priorytetów hostingu.

  • Upewnij się, że prefiks URL Dynamic Links nie koliduje z konfiguracjami hostingu o wyższym priorytecie (na przykład hostowane treści statyczne zawsze mają priorytet przed przekierowaniami).
  • W przypadku atrybutu rewrites odpowiedź Hosting będzie zgodna z regułą określoną przez pierwszy source glob, który przechwytuje żądaną ścieżkę.

Jeśli na przykład skonfigurujesz Dynamic Link dla your-domain/source-path/link-suffix, ale masz też treści statyczne w your-domain/source-path/index.html, treści statyczne mają pierwszeństwo. Użytkownik końcowy zobaczy index.html zamiast Dynamic Link. Podobnie, jeśli masz treści statyczne w your-domain/source-path/link-suffix, użytkownik końcowy zobaczy treści statyczne zamiast Dynamic Link.

Jeśli chcesz używać tego samego brandingu zarówno w przypadku Dynamic Links, jak i Hosting, rozważ jedną z tych opcji prefiksu URL Dynamic Links:

  • Ustaw atrybut source tak, aby pasował do prefiksu ścieżki. Jeśli na przykład masz domenę niestandardową example.com, reguła przekierowania może wyglądać tak:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Skonfiguruj subdomenę do użycia w przypadku Dynamic Links, a następnie ustaw atrybut source tak, aby pasował do tej subdomeny. Jeśli na przykład masz subdomenę links.example.com, reguła przekierowania może wyglądać tak:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]