2016-06-30 25 views
5

Quindi, ho abilitato la posta elettronica/password nella console di sviluppo e tutto funziona correttamente. Tranne che dovrei ricevere un'email di conferma per l'e-mail che ho immesso, ma non lo capisco. Pensavo lo facesse automaticamente, ma a quanto pare non è così.Come inviare conferma email Firebase alla registrazione?


Metodo di iscrizione:

public void signUp(View v) { 
    String email = emailET.getText().toString(); 
    String password = passwordET.getText().toString(); 
    mAuth.createUserWithEmailAndPassword(email, password) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d("AD", "createUserWithEmail: " + task.isSuccessful() + task.getException()); 
        if (!task.isSuccessful()) { 
         createDialogSignUpError(
           getApplicationContext().getResources().getString(R.string.signUpFailedET), 
           getApplicationContext().getResources().getString(R.string.signUpFailedEM), 
           getApplicationContext().getResources().getString(android.R.string.ok)); 
         Toast.makeText(SignUp.this, task.getException().toString(), Toast.LENGTH_LONG).show(); 
        } else if (task.isSuccessful()) { 
         Toast.makeText(SignUp.this, "Registration Successful.", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 

} 

Si dovrebbe trasmettere, ma purtroppo non lo è. Ho letto da qualche parte su SO che è necessario aggiungere un metodo o qualcosa per inviare l'e-mail, e manca nei documenti, ma non era Java.


Modifica

Secondo here, è supportato solo in iOS e web. Il che è piuttosto sorprendente, poiché dopotutto, android IS Google, e Google è Firebase. Quindi è possibile anche con la creazione di una email inviata personalizzata?


Edit 2: Per essere più chiari, fa Android hanno un Email mittente come C#. Questa sarebbe la soluzione migliore se non ci fosse un'API per questo.

+0

Credo che tu abbia ragione, leggendo i documenti [] (https://firebase.google.com/docs/auth/custom-email-handler) questo è disponibile solo in IOS e sWIFT. Ci sono anche alcune discussioni [qui] (http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass) se vuoi cercare qualche soluzione alternativa. – adolfosrs

+0

No, questo non è un duplicato, se non hai letto, ho detto che ho visto domande del genere e il mio è completamente diverso. –

+0

Hai letto questo? http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass – johni

risposta

1

Ora puoi colmare le lacune di Firebase nella copertura di e-mail facendo ruotare il tuo mittente e-mail utilizzando le funzioni di Firebase Cloud. C'è un esempio here. Ovviamente questo significa più lavoro rispetto alla semplice configurazione come le opzioni built-in, ma almeno significa che possiamo fare tutto ciò che dobbiamo fare. :)

1

Ora, secondo il updated firebase documentation

Ecco come inviare una e-mail di verifica per l'utente che nel tuo caso è dopo aver creato l'account e lasciando l'utente di log-in quindi inviare lui/lei una notifica che egli deve verificare l'account e poi il successivo accesso è bloccato fino a quando lui/lei non ha verificato (credo che questo sia meglio che fare l'utente è costretto ad aprire la posta elettronica prima)

Invia un utente di un email di verifica

È possibile inviare una verifica dell'indirizzo posta elettronica a un utente con il metodo sendEmailVerification. Per esempio:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

user.sendEmailVerification() 
     .addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       if (task.isSuccessful()) { 
        Log.d(TAG, "Email sent."); 
       } 
      } 
     }); 
Problemi correlati