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 domeny podrzędnej page.link. Dzięki domenom niestandardowym możesz tworzyć Dynamic Links takie jak te:

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 to prefiks URL. Zawiera on zarówno niestandardową domenę Dynamic Link, jak i prefiks ścieżki. Podczas tworzenia Dynamic Links musisz podać prefiks URL.

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

Korzystanie z domeny internetowej do celów Dynamic Links

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

Jeśli np. chcesz utworzyć Dynamic Link do zasobu https://example.com/my-resource (strony internetowej, uniwersalnego linku lub linku aplikacji), nie możesz użyć https://example.com/ jako prefiksu adresu URL Dynamic Links, ponieważ https://example.com/my-resource zostanie wtedy potraktowany jako Dynamic Link. Zamiast tego musisz użyć prefiksu adresu URL z inną domeną lub innym prefiksem ścieżki.

Dlatego te długie adresy Dynamic Links (i odpowiednie krótkie linki) nie będą działać zgodnie z oczekiwaniami, ponieważ adresy URL określone przez parametr link zaczynają się od prefiksu adresu 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

Natomiast te długie adresy Dynamic Links (i odpowiednie krótkie linki) mogą działać, ponieważ ich prefiksy nie kolidują z adresami 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

Zazwyczaj domenę niestandardową można skonfigurować w konsoli Firebase. Do:

  1. Jeśli nie masz skonfigurowanego Firebase Hosting w projekcie, otwórz stronę Hosting konsoli Firebase, kliknij Rozpocznij i przejrzyj instrukcje konfiguracji. Nie musisz w tej chwili wykonywać wskazanych czynności.

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

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

    Następnie w kreatorze konfiguracji podaj 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 jako prefiksy adresów 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ż domenę niestandardową skonfigurowaną dla Dynamic Links i chcesz dodać kolejną domenę lub gdy dodajesz domenę, która jest już połączona z witryną Hosting, musisz skonfigurować domenę niestandardową ręcznie.

Aby to zrobić:

  1. Połącz domenę z Firebase Hosting, jeśli nie zostało to jeszcze zrobione.

    Konfigurowanie domeny za pomocą usługi Firebase Hosting obejmuje utworzenie pliku konfiguracji firebase.json w lokalnym katalogu projektu.

  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 obejmuje wiele witryn, pamiętaj, aby skonfigurować witrynę połączoną z domeną, której chcesz użyć.

    • Ustaw appAssociation na AUTO. Dzięki temu Hosting dynamicznie generuje pliki assetlinks.json i apple-app-site-association, gdy zostaną o to poproszone.

    • Określ prefiksy ścieżek, których chcesz używać w przypadku Dynamic Links, ustawiając wartość dynamicLinks w regułach przekształcania na true. Żądania dotyczące tych ścieżek są przekierowywane do Dynamic Links.

      W odróżnieniu od reguł, które przepisują ścieżki na adresy URL, Dynamic Linkreguły przepisywania nie mogą zawierać wyrażeń regularnych.

      Jeśli masz w witrynie kilka reguł przepisywania, pamiętaj, żeHosting wykonuje pierwszą regułę przepisywania, która pasuje do żądania.

    Przykład:

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

    Dzięki tej konfiguracji możesz tworzyć Dynamic Links z prefiksami adresów URL, takimi jak te:

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

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

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

    Za pomocą powyższej reguły możesz utworzyć Dynamic Links w taki sposób:

    https://your-domain/link-suffix

  4. Wprowadź zmiany konfiguracji Hosting:

    firebase deploy --only hosting

    (opcjonalnie) za pomocą interfejsu Hosting API REST możesz sprawdzić wdrożone treści firebase.json.

  5. Tylko iOS: w pliku Info.plist projektu Xcode utwórz klucz o nazwie FirebaseDynamicLinksCustomDomains i ustaw go jako prefiksy adresów 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 należy zwrócić szczególną uwagę na kolejność priorytetów hostingu.

  • Upewnij się, że prefiks URL-a Dynamic Links nie jest w konflikcie z konfiguracjami hostingu o wyższym priorytecie (np. hostowane treści statyczne mają zawsze wyższy priorytet niż przekierowania).
  • W atrybucie rewrites odpowiedź Hosting będzie przestrzegać reguły określonej przez pierwszy wzór globu source, który obejmuje żądaną ścieżkę.

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

Jeśli chcesz używać tego samego brandingu w przypadku usług Dynamic LinksHosting, rozważ wybranie jednej z tych opcji prefiksu adresu URL Dynamic Links:

  • Ustaw atrybut source tak, aby pasował do prefiksu ścieżki. Jeśli na przykład masz domenę niestandardową example.com, Twoja 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ę, której chcesz używać w przypadku atrybutu Dynamic Links, a następnie skonfiguruj 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
    } ]