Puoi avere un maggiore controllo sul branding dei tuoi link dinamici utilizzando il tuo dominio invece di un sottodominio page.link
. Con i domini personalizzati, puoi creare collegamenti dinamici come i seguenti esempi:
https://example.com/link-suffix https://example.com/links/promos/link-suffix https://links.example.com/link-suffix https://ex.amp.le/link-suffix
La parte dell'URL prima link-suffix è chiamata prefisso dell'URL e contiene sia il dominio Dynamic Link personalizzato sia un prefisso del percorso. Dovrai fornire un prefisso URL quando crei collegamenti dinamici.
La configurazione di un dominio personalizzato richiede l'autorizzazione Editor o Proprietario per il tuo progetto Firebase.
Utilizzo del tuo dominio web per i link dinamici
Puoi utilizzare lo stesso dominio per i tuoi collegamenti dinamici e le tue pagine Web, i collegamenti universali e i collegamenti alle app, ma se lo fai, devi fare attenzione che i tuoi URL dei collegamenti dinamici non siano in conflitto con i tuoi URL web. Quando configuri i collegamenti dinamici per l'utilizzo di un particolare prefisso URL, tutti gli URL che iniziano con tale prefisso vengono trattati come collegamenti dinamici, quindi non puoi utilizzare gli URL con tale prefisso per puntare al normale contenuto ospitato.
Ad esempio, se desideri creare un collegamento dinamico alla risorsa https://example.com/my-resource
(una pagina Web, un collegamento universale o un collegamento all'app), non puoi utilizzare https://example.com/
come prefisso dell'URL dei collegamenti dinamici, perché così facendo https://example.com/my-resource
verrebbe trattato come un collegamento dinamico. Invece, devi utilizzare un prefisso URL con un dominio diverso o un prefisso di percorso diverso.
Pertanto, i seguenti collegamenti dinamici di formato lungo (e collegamenti brevi equivalenti) non funzioneranno come previsto perché gli URL specificati dal parametro link
iniziano con il prefisso dell'URL del collegamento dinamico, https://example.com/
:
https://example.com/?link=https://example.com/my-resource https://example.com/?link=https://example.com/resources/my-resource
Tuttavia, i seguenti collegamenti dinamici di lunga durata (e collegamenti brevi equivalenti) possono funzionare, poiché i prefissi URL non sono in conflitto con gli 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
Configura un dominio personalizzato nella console Firebase
Di solito puoi configurare completamente un dominio personalizzato nella console Firebase. Fare così:
Se non hai configurato Firebase Hosting per il tuo progetto, apri la pagina Hosting della console Firebase, fai clic su Inizia e fai clic sulle istruzioni di configurazione. Non è necessario completare i passaggi indicati in questo momento.
Apri la pagina Collegamenti dinamici della console Firebase.
Se non hai mai utilizzato i link dinamici in precedenza, fai clic su Inizia . Altrimenti, fai clic su Aggiungi prefisso URL dal menu a discesa.
Quindi, completa la configurazione guidata, specificando il dominio e il prefisso del percorso che desideri utilizzare quando richiesto.
Solo iOS : nel file
Info.plist
del tuo progetto Xcode, crea una chiave denominataFirebaseDynamicLinksCustomDomains
e impostala sui prefissi URL dei collegamenti dinamici della tua app. Per esempio:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
Configura manualmente un dominio personalizzato
In alcune situazioni, ad esempio quando disponi già di un dominio personalizzato configurato per Dynamic Links e desideri aggiungere un altro dominio, o quando aggiungi un dominio già connesso a un sito di hosting, devi configurare manualmente il tuo dominio personalizzato.
Fare così:
Collega il tuo dominio a Firebase Hosting se non l'hai già fatto.
La configurazione del tuo dominio con Firebase Hosting include la creazione del file di configurazione
firebase.json
nella directory del progetto locale.Aggiorna all'ultima versione dell'interfaccia a riga di comando di Firebase (v6.5.0 o successiva).
Configura il tuo sito di hosting per i collegamenti dinamici nel file
firebase.json
del tuo progetto. Se il tuo progetto ha più siti, assicurati di configurare il sito collegato al dominio che desideri utilizzare.Imposta
appAssociation
suAUTO
. Con questa impostazione, l'hosting genera dinamicamente i file di associazioneassetlinks.json
eapple-app-site-association
quando vengono richiesti.Specifica i prefissi del percorso che desideri utilizzare per i collegamenti dinamici impostando le regole di riscrittura con
dynamicLinks
impostato sutrue
. Le richieste a questi percorsi vengono inoltrate a Dynamic Links.A differenza delle regole che riscrivono i percorsi degli URL, le regole di riscrittura di Dynamic Link non possono contenere espressioni regolari.
Se disponi di più regole di riscrittura per il tuo sito, tieni presente che l'hosting esegue la prima regola di riscrittura che corrisponde alla richiesta.
Per esempio:
"hosting": { // ... "appAssociation": "AUTO", "rewrites": [ { "source": "/promos/**", "dynamicLinks": true }, { "source": "/links/share/**", "dynamicLinks": true } ] }
Con la configurazione di cui sopra, puoi creare collegamenti dinamici con prefissi URL come i seguenti esempi:
https://your-domain/promos/link-suffix https://your-domain/links/share/link-suffix
Se utilizzi questo dominio solo per i collegamenti dinamici, puoi utilizzare un percorso di origine di
/**
per creare collegamenti dinamici senza prefisso del percorso:{ "source": "/**", "dynamicLinks": true }
Con la regola precedente, puoi creare collegamenti dinamici come nell'esempio seguente:
https://your-domain/link-suffix
Implementa le modifiche alla configurazione dell'hosting:
firebase deploy --only hosting
(facoltativo) Puoi controllare il contenuto
firebase.json
distribuito utilizzando l' Hosting REST API .Solo iOS : nel file
Info.plist
del tuo progetto Xcode, crea una chiave denominataFirebaseDynamicLinksCustomDomains
e impostala sui prefissi URL dei collegamenti dinamici della tua app. Per esempio:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/promos</string> <string>https://example.com/links/share</string> </array>
Ordine di priorità per Dynamic Links e Hosting
Per i collegamenti dinamici, prestare particolare attenzione all'ordine di priorità dell'hosting .
- Assicurati che il prefisso dell'URL dei collegamenti dinamici non sia in conflitto con le configurazioni di hosting con priorità più alta (ad esempio, il contenuto statico ospitato ha sempre la priorità sulle riscritture).
- All'interno dell'attributo
rewrites
, la risposta Hosting obbedirà alla regola specificata dal primo globsource
che acquisisce il percorso richiesto .
Ad esempio, se imposti un collegamento dinamico per your-domain / source-path / link-suffix
ma hai anche contenuto statico in your-domain / source-path /index.html
, il contenuto statico ha la precedenza. Un utente finale vedrà index.html
anziché il collegamento dinamico. Allo stesso modo, se disponi di contenuto statico in your-domain / source-path / link-suffix
, l'utente finale vedrà il contenuto statico anziché il collegamento dinamico.
Se desideri utilizzare lo stesso marchio sia per i collegamenti dinamici che per l'hosting, considera una delle seguenti opzioni per il prefisso dell'URL dei collegamenti dinamici:
Imposta il tuo attributo
source
in modo che corrisponda a un prefisso di percorso. Ad esempio, se disponi di un dominio personalizzatoexample.com
, la tua regola di riscrittura potrebbe essere:// Domain is example.com "rewrites": [ { "source": "/links/**", // Dynamic Links start with "https://example.com/links/" "dynamicLinks": true } ]
Imposta un sottodominio da utilizzare per i collegamenti dinamici, quindi imposta l'attributo
source
in modo che corrisponda a quel sottodominio. Ad esempio, se hai un sottodominio dilinks.example.com
, la tua regola di riscrittura potrebbe essere:// Domain is links.example.com "rewrites": [ { "source": "/**", // Dynamic Links start with "https://links.example.com/" "dynamicLinks": true } ]