Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Imposta un dominio personalizzato per Dynamic Links

Puoi avere un maggiore controllo sul marchio dei tuoi link dinamici utilizzando il tuo dominio invece di un sottodominio page.link . Con i domini personalizzati, puoi creare collegamenti dinamici come nei 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 è denominata prefisso URL e contiene sia il dominio Dynamic Link personalizzato che un prefisso del percorso. Dovrai fornire un prefisso URL quando crei collegamenti dinamici.

La configurazione di un dominio personalizzato richiede l'autorizzazione di Editor o Proprietario sul tuo progetto Firebase.

Utilizzo del tuo dominio web per Dynamic Links

Puoi utilizzare lo stesso dominio per i tuoi link dinamici e le tue pagine web, link universali e link app, ma se lo fai, devi fare attenzione che i tuoi URL di link dinamici non siano in conflitto con i tuoi URL web. Quando si configurano i collegamenti dinamici per utilizzare un particolare prefisso URL, tutti gli URL che iniziano con quel prefisso vengono trattati come collegamenti dinamici, quindi non è possibile utilizzare gli URL con quel prefisso per puntare a contenuti ospitati ordinari.

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 necessario utilizzare un prefisso URL con un dominio diverso o un prefisso di percorso diverso.

Pertanto, i seguenti collegamenti dinamici di lunga durata (e collegamenti brevi equivalenti) non funzioneranno come previsto perché gli URL specificati dal parametro del link iniziano con il prefisso URL collegamento dinamico, https://example.com/ :

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

Ma i seguenti collegamenti dinamici di lunga durata (e collegamenti brevi equivalenti) possono funzionare, perché i prefissi URL non sono in conflitto con gli URL dei 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ì:

  1. 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.

  2. Apri la pagina Dynamic Links della console Firebase.

  3. Se non hai mai utilizzato Dynamic Links, fai clic su Inizia . Altrimenti, fai clic su Aggiungi prefisso URL dal menu a discesa.

    Quindi, completare la procedura guidata di installazione, specificando il dominio e il prefisso del percorso che si desidera utilizzare quando richiesto.

  4. Solo iOS : nel file Info.plist del progetto Xcode, crea una chiave denominata FirebaseDynamicLinksCustomDomains e Info.plist 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, come quando hai già un dominio personalizzato configurato per Dynamic Links e vuoi aggiungere un altro dominio, o quando stai aggiungendo un dominio già connesso a un sito Hosting, devi configurare manualmente il tuo dominio personalizzato.

Fare così:

  1. Collega il tuo dominio a Firebase Hosting se non lo hai già fatto.

    La configurazione del tuo dominio con Firebase Hosting include la creazione del file di configurazione firebase.json nella firebase.json del tuo progetto locale.

  2. Aggiorna all'ultima versione della CLI Firebase (v6.5.0 o successiva).

  3. Configura il tuo sito di hosting per Dynamic Links nel file firebase.json del tuo progetto. Se il tuo progetto ha più siti, assicurati di configurare il sito connesso al dominio che desideri utilizzare.

    • Imposta appAssociation su AUTO . Con questa impostazione, Hosting genera dinamicamente file assetlinks.json e apple-app-site-association quando vengono richiesti.

    • Specificare i prefissi del percorso che si desidera utilizzare per Dynamic Links impostando regole di riscrittura con dynamicLinks impostato su true . Le richieste a questi percorsi vengono inoltrate a Dynamic Links.

      A differenza delle regole che riscrivono i percorsi negli URL, le regole di riscrittura di Dynamic Link non possono contenere espressioni regolari.

      Se hai più regole di riscrittura per il tuo sito, tieni presente che 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 di percorso:

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

    Con la regola sopra, puoi creare collegamenti dinamici come il seguente esempio:

    https://your-domain/link-suffix

  4. Distribuisci le modifiche alla configurazione dell'hosting:

    firebase deploy --only hosting

    (Facoltativo) Puoi controllare il contenuto di firebase.json distribuito utilizzando l' API REST di hosting .

  5. Solo iOS : nel file Info.plist del progetto Xcode, crea una chiave denominata FirebaseDynamicLinksCustomDomains e Info.plist 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 collegamenti dinamici e hosting

Per i collegamenti dinamici, prestare particolare attenzione all'ordine di priorità dell'hosting .

  • Assicurati che il tuo prefisso URL Dynamic Links non sia in conflitto con 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 glob di source che acquisisce il percorso richiesto .

Ad esempio, se imposti un collegamento dinamico per your-domain / source-path / link-suffix ma hai anche contenuto statico su 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 su 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 Dynamic Links che per Hosting, prendi in considerazione una delle seguenti opzioni per il prefisso URL di Dynamic Links:

  • Imposta il tuo attributo di source in modo che corrisponda a un prefisso di percorso. Ad esempio, se disponi di un dominio personalizzato di example.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 Dynamic Links, quindi imposta l'attributo di source in modo che corrisponda a quel sottodominio. Ad esempio, se hai un sottodominio di links.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
    } ]