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ć:
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.
Otwórz stronę Dynamic Links w konsoli Firebase.
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ć.
Tylko iOS: w pliku
Info.plistprojektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomainsi 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ć:
Połącz domenę z Firebase Hosting jeśli jeszcze tego nie zrobisz.
Konfigurowanie domeny za pomocą Firebase Hosting obejmuje utworzenie pliku konfiguracyjnego
firebase.jsonw katalogu projektu lokalnego.Zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji (6.5.0 lub nowszej).
Skonfiguruj witrynę Hosting pod kątem Dynamic Links w pliku
firebase.jsonprojektu. Jeśli Twój projekt ma wiele witryn, skonfiguruj witrynę połączoną z domeną, której chcesz używać.Ustaw
appAssociationnaAUTO. Dzięki temu ustawieniu Hosting dynamicznie generujeassetlinks.jsoniapple-app-site-associationpliki, 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ą
dynamicLinksustawioną natrue. Żą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
Wdróż zmiany konfiguracji Hosting:
firebase deploy --only hosting
(Opcjonalnie) Możesz sprawdzić wdrożoną zawartość
firebase.jsonza pomocą Hosting interfejsu REST API.Tylko iOS: w pliku
Info.plistprojektu Xcode utwórz klucz o nazwieFirebaseDynamicLinksCustomDomainsi 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
rewritesodpowiedź Hosting będzie zgodna z regułą określoną przez pierwszysourceglob, 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
sourcetak, 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
sourcetak, 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 } ]