Impostazione di un dominio personalizzato per Dynamic Links

Puoi avere un maggiore controllo sul tuo Dynamic Links il branding usando la tua invece che con un sottodominio page.link. Con i domini personalizzati, puoi creare Dynamic Links 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 che precede link-suffix è chiamata prefisso URL e contiene sia il dominio Dynamic Link personalizzato sia un prefisso del percorso. Dovrai fornire un prefisso URL quando crei Dynamic Links.

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

Utilizzare il dominio web per Dynamic Links

Puoi utilizzare lo stesso dominio per Dynamic Links e per le tue pagine web, Universal e link alle app, ma in questo caso devi assicurarti che gli URL di Dynamic Link non siano in conflitto con i tuoi URL web. Quando configuri Dynamic Links in modo che utilizzi un un particolare prefisso, tutti gli URL che iniziano con quel prefisso vengono trattati come Dynamic Links, quindi non puoi utilizzare URL con questo prefisso per puntare ai normali URL ospitati contenuti.

Ad esempio, se vuoi creare un Dynamic Link per la risorsa https://example.com/my-resource (una pagina web, un link universale o un link all'app), non può utilizzare https://example.com/ come prefisso URL Dynamic Links perché così facendo fa sì che https://example.com/my-resource venga trattato come Dynamic Link. Devi invece utilizzare un prefisso URL con un dominio o un prefisso di percorso diverso.

Di conseguenza, il seguente Dynamic Links in formato lungo (e i link brevi equivalenti) non funzioneranno come perché gli URL specificati dal parametro link iniziano con Prefisso 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

Tuttavia, i seguenti Dynamic Links nel formato lungo (e i link brevi equivalenti) possono funzionare, perché i prefissi degli URL non sono in conflitto con gli URL di 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

In genere, puoi configurare un dominio personalizzato completamente nella console Firebase. A farlo:

  1. Se non hai configurato Firebase Hosting per il tuo progetto, apri Pagina Hosting della console Firebase, fai clic su Inizia e fai clic sulle istruzioni per la configurazione. Al momento non è necessario completare i passaggi indicati.

  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, completa la configurazione guidata specificando il dominio e il prefisso di percorso che vuoi utilizzare quando richiesto.

  4. Solo iOS: nel file Info.plist del progetto Xcode, crea una chiave denominata FirebaseDynamicLinksCustomDomains e impostalo sull'URL Dynamic Links dell'app prefissi. Ad 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 hai già configurato un dominio personalizzato Dynamic Links e vuoi aggiungere un altro dominio o se ne aggiungi già uno collegati a un sito Hosting, devi configurare manualmente il dominio personalizzato.

Per farlo:

  1. Collega il tuo dominio a Firebase Hosting se non l'hai ancora fatto.

    La configurazione del dominio con Firebase Hosting include la creazione del di configurazione del deployment firebase.json in della directory locale del tuo progetto.

  2. Esegui l'aggiornamento alla versione più recente della CLI Firebase (v6.5.0 o successiva).

  3. Configura il sito Hosting per Dynamic Links nel firebase.json file. Se il progetto ha più siti, assicurati di configurare il sito collegato al dominio che vuoi utilizzare.

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

    • Specifica i prefissi del percorso che vuoi utilizzare per Dynamic Links impostando la riscrittura regole con dynamicLinks impostato su true. Le richieste a questi percorsi vengono inviato tramite proxy a Dynamic Links.

      A differenza delle regole che riscrivono i percorsi degli URL, Dynamic Link regole di riscrittura non possono contengono 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.

    Ad esempio:

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

    Con la configurazione precedente, puoi creare Dynamic Links 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 Dynamic Links, puoi utilizzare il percorso di origine /** per creare Dynamic Links senza prefisso del percorso:

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

    Con la regola precedente, puoi creare Dynamic Links come nell'esempio seguente:

    https://your-domain/link-suffix

  4. Esegui il deployment delle modifiche alla configurazione di Hosting:

    firebase deploy --only hosting

    (Facoltativo) Puoi controllare i contenuti firebase.json di cui è stato eseguito il deployment utilizzando API REST Hosting.

  5. Solo iOS: nel file Info.plist del progetto Xcode, crea una chiave denominata FirebaseDynamicLinksCustomDomains e impostalo sull'URL Dynamic Links dell'app prefissi. Ad 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 Dynamic Links, presta particolare attenzione ordine di priorità di hosting.

  • Assicurati che il prefisso URL Dynamic Links non sia in conflitto con una priorità più alta configurazioni di hosting (ad esempio, i contenuti statici ospitati hanno sempre la priorità sulle riscritture).
  • All'interno dell'attributo rewrites, la risposta Hosting rispetterà la regola specificato dal primo glob source che acquisisce il percorso richiesto.

Ad esempio, se configuri un Dynamic Link per your-domain/source-path/link-suffix ma hai anche contenuti statici in your-domain/source-path/index.html, i contenuti statici avranno la precedenza. L'utente finale vedrà index.html anziché Dynamic Link. Analogamente, se hai contenuti statici in your-domain/source-path/link-suffix, l'utente finale vedrà i contenuti statici anziché Dynamic Link.

Se vuoi utilizzare lo stesso branding sia per Dynamic Links sia per Hosting, prendi in considerazione una delle seguenti opzioni per il prefisso URL Dynamic Links:

  • Imposta l'attributo source in modo che corrisponda a un prefisso del percorso. Ad esempio, se disponi di una dominio personalizzato di example.com, la regola di riscrittura potrebbe essere:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • Configura un sottodominio da utilizzare per Dynamic Links, poi imposta l'attributo source su corrispondono al sottodominio. Ad esempio, se hai un sottodominio dilinks.example.com, la regola di riscrittura potrebbe essere:

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