Google si impegna a far progredire equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Generazione Email Azione Link

Applicazioni mobili a volte hanno bisogno di interagire con gli utenti e spingerli a intraprendere determinate azioni con l'invio di messaggi di posta elettronica.

I Firebase Admin SDK offrono la possibilità di inviare messaggi di posta elettronica contenenti link utenti che possono utilizzare per reimpostazione delle password, e-mail di verifica degli indirizzi, e-mail-based di accesso. Queste e-mail vengono inviate da Google e hanno limitato personalizzazione.

Se si desidera utilizzare invece i propri modelli e-mail e il proprio servizio di consegna di posta elettronica, è possibile utilizzare la Firebase Admin SDK per programmazione generare i link di azione per i flussi di cui sopra, che è possibile includere nelle e-mail ai vostri utenti.

Questo viene fornito con i seguenti vantaggi:

  • Personalizzare modelli di posta elettronica. Ciò include la possibilità di aggiungere nuovi stili e branding personalizzato, cambiare testo e loghi, gli utenti di indirizzo per nome invece del nome completo, e così via.
  • Applicare i modelli differenti a seconda del contesto. Ad esempio, se l'utente sta verificando la loro email per iscriversi a una newsletter, il contesto può essere necessario fornito nel contenuto delle email. Un altro esempio è l'email Link segno: in uno scenario di questo può essere innescato dallo stesso utente, o come un invito da un altro utente. Il contesto dovrebbe essere incluso nel email.
  • Localizzare personalizzato modelli di posta elettronica.
  • Capacità di generare il link di un ambiente server sicuro.
  • Possibilità di personalizzare come il collegamento deve essere aperto, attraverso un app mobile o un browser, e come passare informazioni di stato supplementari, etc.
  • Possibilità di personalizzare il dominio di collegamento dinamico utilizzato per app mobile scorre quando si costruisce il collegamento azione di posta elettronica, e anche specificare un diverso dominio collegamento dinamico a seconda del contesto o app mobile.

Inizializza ActionCodeSettings

Prima di poter generare un link di azione e-mail, potrebbe essere necessario per inizializzare un ActionCodeSettings esempio.

ActionCodeSettings permettono di passare stato aggiuntivo attraverso una continua URL che è accessibile dopo che l'utente fa clic sul collegamento e-mail. Ciò fornisce inoltre all'utente la possibilità di tornare alla applicazione dopo che l'azione è stata completata. Inoltre, è possibile specificare se per gestire il collegamento azione e-mail direttamente da un'applicazione mobile quando viene installato o da un browser.

Per i collegamenti che sono destinate ad essere aperto tramite un'applicazione mobile, è necessario abilitare Firebase dinamica Link e eseguire alcune attività per rilevare questi link dal tuo Mobile App. Fare riferimento alle istruzioni su come configurare Firebase dinamico collegamenti per le azioni di e-mail.

Per inizializzare un ActionCodeSettings esempio, fornire i seguenti dati:

Parametro genere Descrizione
url corda

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

  • Quando il collegamento viene gestito nei widget dell'azione web, questo è il link in profondità nel continueUrl parametro di query.
  • Quando il collegamento viene gestito in app direttamente, questo è il continueUrl parametro di query nel profondo legame del collegamento dinamico.
iOS ({BundleID: string} | undefined) Imposta il fascio ID iOS. Questo tenterà di aprire il collegamento in un app iOS, se è installato. L'app iOS deve essere registrato nella console.
android ({PackageName: string, installApp: booleano | undefined, minimumVersion: stringa | undefined} | undefined) Imposta il nome del pacchetto Android. Questo tenterà di aprire il collegamento in un app Android se è installato. Se installApp è passata, specifica se installare l'applicazione Android se il dispositivo lo supporta e l'applicazione non è già installato. Se questo campo viene fornito senza un packageName , viene generato un errore spiegando che il packageName deve essere fornita in combinazione con questo campo. Se minimumVersion viene specificato, ed è installata una versione precedente dell'app, l'utente è portato al Play Store per aggiornare l'applicazione. L'applicazione Android deve essere registrato nella console.
handleCodeInApp (Booleano | undefined) Se il collegamento azione di posta elettronica verrà aperto in un app mobile o un collegamento web prima. Il valore predefinito è falso. Quando è impostata su true, il collegamento codice di azione verrà inviato come Universal Link o Android App Link e sarà aperta dal l'applicazione se installata. Nel caso false, il codice verrà inviato al web widget di prima e poi a continuare reindirizza al app se installato.
dynamicLinkDomain (String | undefined) Imposta il dominio di collegamento dinamico (o sottodominio) da utilizzare per il collegamento corrente se deve essere aperto utilizzando Firebase dinamica Links. Come più domini collegamento dinamico possono essere configurate per ogni progetto, questo campo offre la possibilità di scegliere in modo esplicito uno. Se non viene fornito, il dominio più vecchio viene utilizzato per impostazione predefinita.

Il seguente esempio illustra come inviare un link di verifica e-mail che si apre in un app mobile prima come Firebase Dynamic Link (app iOS com.example.ios o Android com.example.android cui l'applicazione installerà se non è già installato e la versione minima è 12). Il profondo legame conterrà l'URL continuano payload https://www.example.com/checkout?cartId=1234 . Il dominio di collegamento dinamico utilizzato è coolapp.page.link , che deve essere configurato per l'utilizzo con Firebase dinamica Links.

Node.js

 const actionCodeSettings = {
  // URL you want to redirect back to. The domain (www.example.com) for
  // this URL must be whitelisted in the Firebase Console.
  url: 'https://www.example.com/checkout?cartId=1234',
  // This must be true for email link sign-in.
  handleCodeInApp: true,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  // FDL custom domain.
  dynamicLinkDomain: 'coolapp.page.link'
};
 

Giava

 ActionCodeSettings actionCodeSettings = ActionCodeSettings.builder()
    .setUrl("https://www.example.com/checkout?cartId=1234")
    .setHandleCodeInApp(true)
    .setIosBundleId("com.example.ios")
    .setAndroidPackageName("com.example.android")
    .setAndroidInstallApp(true)
    .setAndroidMinimumVersion("12")
    .setDynamicLinkDomain("coolapp.page.link")
    .build();
 

Pitone

 action_code_settings = auth.ActionCodeSettings(
    url='https://www.example.com/checkout?cartId=1234',
    handle_code_in_app=True,
    ios_bundle_id='com.example.ios',
    android_package_name='com.example.android',
    android_install_app=True,
    android_minimum_version='12',
    dynamic_link_domain='coolapp.page.link',
)
 

Partire

 actionCodeSettings := &auth.ActionCodeSettings{
	URL:                   "https://www.example.com/checkout?cartId=1234",
	HandleCodeInApp:       true,
	IOSBundleID:           "com.example.ios",
	AndroidPackageName:    "com.example.android",
	AndroidInstallApp:     true,
	AndroidMinimumVersion: "12",
	DynamicLinkDomain:     "coolapp.page.link",
}
 

C #

 var actionCodeSettings = new ActionCodeSettings()
{
    Url = "https://www.example.com/checkout?cartId=1234",
    HandleCodeInApp = true,
    IosBundleId = "com.example.ios",
    AndroidPackageName = "com.example.android",
    AndroidInstallApp = true,
    AndroidMinimumVersion = "12",
    DynamicLinkDomain = "coolapp.page.link",
};
 

Per ulteriori informazioni, vedere Passaggio di Stato in Email azioni .

Per generare un link di reimpostazione della password, fornire e-mail dell'utente esistente e un optional ActionCodeSettings oggetto. L'operazione si risolverà con il link di azione e-mail. L'e-mail utilizzato deve appartenere a un utente esistente.

Node.js

 // Admin SDK API to generate the password reset link.
const userEmail = 'user@example.com';
admin.auth().generatePasswordResetLink(userEmail, actionCodeSettings)
  .then((link) => {
    // Construct password reset email template, embed the link and send
    // using custom SMTP server.
    return sendCustomPasswordResetEmail(email, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });
 

Giava

 String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generatePasswordResetLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}
 

Pitone

 email = 'user@example.com'
link = auth.generate_password_reset_link(email, action_code_settings)
# Construct password reset email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)
 

Partire

 email := "user@example.com"
link, err := client.PasswordResetLinkWithSettings(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct password reset template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)
 

C #

 var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GeneratePasswordResetLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);
 

Dopo il collegamento viene generato, esso può essere inserito nella reimpostazione password personalizzata e-mail e poi inviato via email all'utente corrispondente utilizzando un server SMTP personalizzato.

Se non si utilizza la pagina di destinazione di reimpostazione password di default e costruire il proprio gestore personalizzato, vedere la creazione di gestori di azione di posta elettronica personalizzato .

Per generare un link di verifica e-mail, fornire email non verificato dell'utente esistente e un optional ActionCodeSettings oggetto. L'operazione si risolverà con il link di azione e-mail. L'e-mail utilizzato deve appartenere a un utente esistente.

Node.js

 // Admin SDK API to generate the password reset link.
const email = 'user@example.com';
admin.auth().generatePasswordResetLink(email, actionCodeSettings)
  .then((link) => {
    // Construct password reset email template, embed the link and send
    // using custom SMTP server.
    return sendCustomPasswordResetEmail(email, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });

// Admin SDK API to generate the email verification link.
const useremail = 'user@example.com';
admin.auth().generateEmailVerificationLink(useremail, actionCodeSettings)
  .then((link) => {
    // Construct email verification template, embed the link and send
    // using custom SMTP server.
    return sendCustomVerificationEmail(useremail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });
 

Giava

 String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generateEmailVerificationLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}
 

Pitone

 email = 'user@example.com'
link = auth.generate_email_verification_link(email, action_code_settings)
# Construct email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)
 

Partire

 email := "user@example.com"
link, err := client.EmailVerificationLinkWithSettings(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct email verification template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)
 

C #

 var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GenerateEmailVerificationLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);
 

Dopo il collegamento viene generato, esso può essere inserito nella e-mail di verifica personalizzato e quindi inviato via email all'utente corrispondente utilizzando un server SMTP personalizzato.

Se non si utilizza la pagina di default di atterraggio di verifica e-mail e costruire il proprio gestore personalizzato, vedere la creazione di gestori di azione di posta elettronica personalizzato .

Prima di poter autenticare gli utenti con collegamento all'e-mail di accesso, è necessario abilitare collegamento e-mail di accesso per il vostro progetto Firebase.

Per generare un segno-in collegamento, fornire e-mail dell'utente e un ActionCodeSettings oggetto. ActionCodeSettings oggetto è necessario in questo caso per fornire informazioni su dove tornare l'utente dopo che il collegamento è scattato per il segno-in completamento. L'operazione si risolverà con il link di azione e-mail.

A differenza di reimpostazione della password e la verifica di posta elettronica, l'e-mail utilizzato non ha necessariamente bisogno di appartenere a un utente esistente, in quanto questa operazione può essere utilizzata per firmare i nuovi utenti nella vostra applicazione tramite collegamento e-mail.

Node.js

 // Admin SDK API to generate the sign in with email link.
const usremail = 'user@example.com';
admin.auth().generateSignInWithEmailLink(usremail, actionCodeSettings)
  .then((link) => {
    // Construct sign-in with email link template, embed the link and
    // send using custom SMTP server.
    return sendSignInEmail(usremail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });
 

Giava

 String email = "user@example.com";
try {
  String link = FirebaseAuth.getInstance().generateSignInWithEmailLink(
      email, actionCodeSettings);
  // Construct email verification template, embed the link and send
  // using custom SMTP server.
  sendCustomEmail(email, displayName, link);
} catch (FirebaseAuthException e) {
  System.out.println("Error generating email link: " + e.getMessage());
}
 

Pitone

 email = 'user@example.com'
link = auth.generate_sign_in_with_email_link(email, action_code_settings)
# Construct email from a template embedding the link, and send
# using a custom SMTP server.
send_custom_email(email, link)
 

Partire

 email := "user@example.com"
link, err := client.EmailSignInLink(ctx, email, actionCodeSettings)
if err != nil {
	log.Fatalf("error generating email link: %v\n", err)
}

// Construct sign-in with email link template, embed the link and send
// using custom SMTP server.
sendCustomEmail(email, displayName, link)
 

C #

 var email = "user@example.com";
var link = await FirebaseAuth.DefaultInstance.GenerateSignInWithEmailLinkAsync(
    email, actionCodeSettings);
// Construct email verification template, embed the link and send
// using custom SMTP server.
SendCustomEmail(email, displayName, link);
 

Dopo il collegamento viene generato, esso può essere inserito nella personalizzato di accesso e-mail e poi inviato per l'utente corrispondente utilizzando un server SMTP personalizzato.

Scopri di più su l'autenticazione degli utenti con Firebase usando i link e-mail . Questo aiuto fornirà informazioni su come completare sign-in dopo l'utente fa clic sul link e viene reindirizzato al app.