Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Stato di passaggio nelle azioni e-mail

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi passare lo stato tramite un URL continua quando invii azioni e-mail per reimpostare la password o verificando l'e-mail di un utente. Ciò offre all'utente la possibilità di tornare all'app una volta completata l'azione. Inoltre, puoi specificare se gestire il collegamento all'azione e-mail direttamente da un'applicazione mobile quando è installata al posto di una pagina Web.

Questo può essere estremamente utile nei seguenti scenari comuni:

  • Un utente, non attualmente connesso, potrebbe tentare di accedere al contenuto che richiede l'accesso dell'utente. Tuttavia, l'utente potrebbe aver dimenticato la password e quindi attivare il flusso di reimpostazione della password. Al termine del flusso, l'utente prevede di tornare alla sezione dell'app a cui stava tentando di accedere.

  • Un'applicazione può offrire l'accesso solo ad account verificati. Ad esempio, una newsletter potrebbe richiedere all'utente di verificare la propria e-mail prima di iscriversi. L'utente seguirà il flusso di verifica dell'e-mail e si aspetterà di tornare all'app per completare l'abbonamento.

  • In altri casi, l'utente potrebbe aver avviato il flusso dal proprio dispositivo mobile e aspettarsi, dopo la verifica, di tornare all'app mobile anziché al browser.

Avere la possibilità di passare lo stato tramite un URL continuo è una potente funzionalità fornita da Firebase Auth e che può migliorare significativamente l'esperienza dell'utente.

Passaggio di stato/continua URL nelle azioni e-mail

Per passare in modo sicuro un URL continua, il dominio per l'URL dovrà essere aggiunto come dominio autorizzato nella console Firebase . Questo viene fatto nella sezione Autenticazione aggiungendo questo dominio all'elenco dei domini autorizzati nella scheda Metodo di accesso se non è già presente.

È necessario fornire un'istanza firebase.auth.ActionCodeSettings quando si invia un'e-mail di reimpostazione della password o un'e-mail di verifica. Questa interfaccia accetta i seguenti parametri:

Parametro Tipo Descrizione
url corda

Imposta il collegamento (stato/continua URL) che ha significati diversi in diversi contesti:

  • Quando il collegamento viene gestito nei widget delle azioni Web, questo è il collegamento diretto nel parametro di query continueUrl .
  • Quando il collegamento viene gestito direttamente nell'app, questo è il parametro di query continueUrl nel collegamento diretto del collegamento dinamico.
iOS ({bundleId: stringa}|non definito) Imposta l'ID bundle iOS. Questo proverà ad aprire il collegamento in un'app iOS se è installata. L'app iOS deve essere registrata nella Console.
android ({nomepacchetto: stringa, installApp:booleano|non definito, versione minima: stringa|non definito}|non definito) Imposta il nome del pacchetto Android. Questo proverà ad aprire il collegamento in un'app Android se è installata. Se installApp viene passato, specifica se installare l'app Android se il dispositivo la supporta e l'app non è già installata. Se questo campo viene fornito senza un packageName , viene generato un errore che spiega che il packageName deve essere fornito insieme a questo campo. Se viene specificata la versione minimumVersion ed è installata una versione precedente dell'app, l'utente viene indirizzato al Play Store per aggiornare l'app. L'app Android deve essere registrata nella Console.
handleCodeInApp (booleano|non definito) Se il collegamento all'azione e-mail verrà aperto prima in un'app mobile o in un collegamento Web. L'impostazione predefinita è falsa. Se impostato su true, il collegamento del codice azione verrà inviato come collegamento universale o collegamento all'app Android e verrà aperto dall'app se installata. Nel caso falso, il codice verrà inviato prima al widget web e poi su continue reindirizzerà all'app se installata.
dynamicLinkDomain (stringa|non definito) Imposta il dominio (o sottodominio) del collegamento dinamico da utilizzare per il collegamento corrente se deve essere aperto utilizzando Firebase Dynamic Links. Poiché è possibile configurare più domini a collegamento dinamico per progetto, questo campo offre la possibilità di sceglierne uno in modo esplicito. Se non ne viene fornito nessuno, per impostazione predefinita viene utilizzato il primo dominio.

L'esempio seguente illustra come inviare un collegamento di verifica e-mail che verrà aperto prima in un'app mobile come collegamento dinamico Firebase utilizzando il dominio di collegamento dinamico personalizzato example.page.link (app iOS com.example.ios o app Android com.example.android dove l'app verrà installata se non è già installata e la versione minima è 12 ). Il collegamento diretto conterrà il payload dell'URL continua https://www.example.com/?email=user@example.com .

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

Firebase Auth utilizza Firebase Dynamic Links quando invia un collegamento che deve essere aperto in un'applicazione mobile. Per utilizzare questa funzione, i collegamenti dinamici devono essere configurati nella console di Firebase.

  1. Abilita collegamenti dinamici Firebase:

    1. Nella console Firebase , apri la sezione Collegamenti dinamici .
    2. Se non hai ancora accettato i termini di Dynamic Links e creato un dominio Dynamic Links, fallo ora.

      Se hai già creato un dominio Dynamic Links, prendine nota. Un dominio Dynamic Links in genere ha l'aspetto seguente:

      example.page.link

      Avrai bisogno di questo valore quando configuri la tua app Apple o Android per intercettare il collegamento in entrata.

  2. Configurazione delle applicazioni Android:

    1. Se prevedi di gestire questi collegamenti dalla tua applicazione Android, il nome del pacchetto Android deve essere specificato nelle impostazioni del progetto Firebase Console. Inoltre, devono essere forniti gli SHA-1 e SHA-256 del certificato dell'applicazione.
    2. Dovrai anche configurare il filtro dell'intento per il collegamento diretto nel tuo file AndroidManifest.xml .
    3. Per ulteriori informazioni, fare riferimento alle istruzioni per la ricezione di collegamenti dinamici Android .
  3. Configurazione delle applicazioni iOS:

    1. Se prevedi di gestire questi collegamenti dalla tua applicazione iOS, l'ID bundle iOS deve essere specificato nelle impostazioni del progetto Firebase Console. Inoltre, è necessario specificare anche l'ID App Store e l'ID del team di sviluppatori Apple.
    2. Sarà inoltre necessario configurare il dominio di collegamento universale FDL come dominio associato nelle capacità dell'applicazione.
    3. Se prevedi di distribuire la tua applicazione su iOS versioni 8 e precedenti, dovrai impostare il tuo ID bundle iOS come schema personalizzato per gli URL in entrata.
    4. Per ulteriori informazioni, fare riferimento alle istruzioni per la ricezione di collegamenti dinamici iOS .

Gestione delle azioni e-mail in un'applicazione Web

È possibile specificare se si desidera gestire prima il collegamento del codice azione da un'applicazione Web e quindi reindirizzare a un'altra pagina Web o applicazione mobile dopo il completamento, a condizione che l'applicazione mobile sia disponibile. Questo viene fatto impostando handleCodeInApp su false nell'oggetto firebase.auth.ActionCodeSettings . Sebbene non siano richiesti un ID bundle iOS o un nome pacchetto Android, fornirli consentirà all'utente di reindirizzare all'app specificata al completamento del codice di azione e-mail.

L'URL web utilizzato qui è quello configurato nella sezione dei modelli di azione e-mail. Uno predefinito è fornito per tutti i progetti. Fare riferimento a Personalizzazione dei gestori di posta elettronica per ulteriori informazioni su come personalizzare il gestore di azioni di posta elettronica.

In questo caso, il collegamento all'interno del parametro di query continueUrl sarà un collegamento FDL il cui payload è l' URL specificato nell'oggetto ActionCodeSettings . Sebbene tu possa intercettare e gestire il collegamento in entrata dalla tua app senza alcuna dipendenza aggiuntiva, ti consigliamo di utilizzare la libreria client FDL per analizzare il collegamento diretto per te.

Quando si gestiscono azioni e-mail come la verifica e-mail, il codice dell'azione dal parametro di query oobCode deve essere analizzato dal collegamento diretto e quindi applicato tramite applyActionCode affinché la modifica abbia effetto, ovvero l'e-mail da verificare.

Gestione delle azioni e-mail in un'applicazione mobile

È possibile specificare se si desidera gestire prima il collegamento del codice azione all'interno dell'applicazione mobile, a condizione che sia installata. Con le applicazioni Android, hai anche la possibilità di specificare tramite android.installApp che l'app deve essere installata se il dispositivo la supporta e non è già installata. Se si fa clic sul collegamento da un dispositivo che non supporta l'applicazione mobile, viene invece aperto da una pagina Web. Questo viene fatto impostando handleCodeInApp su true nell'oggetto firebase.auth.ActionCodeSettings . Sarà inoltre necessario specificare il nome del pacchetto Android dell'applicazione mobile o l'ID bundle iOS.

L'URL Web di riserva utilizzato qui, quando non è disponibile alcuna app mobile, è quello configurato nella sezione dei modelli di azione e-mail. Uno predefinito è fornito per tutti i progetti. Fare riferimento a Personalizzazione dei gestori di posta elettronica per ulteriori informazioni su come personalizzare il gestore di azioni di posta elettronica.

In questo caso, il collegamento dell'app mobile inviato all'utente sarà un collegamento FDL il cui payload è l'URL del codice azione, configurato nella Console, con i parametri di query oobCode , mode , apiKey e continueUrl . Quest'ultimo sarà l' URL originale specificato nell'oggetto ActionCodeSettings . Sebbene tu possa intercettare e gestire il collegamento in entrata dalla tua app senza alcuna dipendenza aggiuntiva, ti consigliamo di utilizzare la libreria client FDL per analizzare il collegamento diretto per te. Il codice azione può essere applicato direttamente da un'applicazione mobile in modo simile a come viene gestito dal flusso Web descritto nella sezione personalizzazione dei gestori di posta elettronica .

Quando si gestiscono azioni e-mail come la verifica e-mail, il codice dell'azione dal parametro di query oobCode deve essere analizzato dal collegamento diretto e quindi applicato tramite applyActionCode affinché la modifica abbia effetto, ovvero l'e-mail da verificare.