2016-06-30 12 views
5

Tak, mam włączone e-mail/hasło w konsoli programisty i wszystko działa poprawnie. Tyle tylko, że powinienem dostać email z potwierdzeniem do e-maila, który podałem, ale nie dostaję go. Myślałem, że robi to automatycznie, ale najwyraźniej tak nie jest.Jak wysłać potwierdzenie e-mailem do Firebase podczas rejestracji?


Sposób zakładania konta:

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(); 
        } 
       } 
      }); 

} 

Należy wysyłania, ale niestety tak nie jest. Czytałem gdzieś na SO, że musisz dodać metodę lub coś, aby wysłać e-mail, i brakuje go w dokumentach, ale to nie była Java.


Edit

Według here, jest obsługiwana tylko w iOS i internecie. Co jest dość zaskakujące, ponieważ przecież, android IS Google, a Google to Firebase. Czy możliwe jest to nawet przy tworzeniu niestandardowej wysłanej wiadomości e-mail?


Edit 2: Aby być bardziej jasne, czy Android mają Email nadawcę jak C#. Byłoby to najlepsze rozwiązanie, gdyby nie było API do tego.

+0

Chyba masz rację, czytając [DOCS] (https://firebase.google.com/docs/auth/custom-email-handler) jest dostępna tylko w systemie iOS i szybki. Istnieje również kilka dyskusji [tutaj] (http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass) jeśli chcesz spojrzeć na niektóre obejścia. – adolfosrs

+0

Nie, to nie jest duplikat, jeśli nie czytałeś, powiedziałem, że widziałem takie pytania, a moje jest zupełnie inne. –

+0

Czy przeczytałeś ten? http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass – johni

Odpowiedz

1

Możesz teraz podłączyć luki Firebase w zasięgu e-maili, przesuwając własnego nadawcę wiadomości e-mail przy użyciu funkcji Firebase Cloud. Istnieje przykład here. Oczywiście oznacza to więcej pracy niż konfigurowanie, jak wbudowane opcje, ale przynajmniej oznacza, że ​​możemy robić, co trzeba. :)

1

Teraz według updated firebase documentation

Oto jak wysłać maila weryfikacyjnego użytkownikowi, że w twoim przypadku jest po utworzeniu konta i pozwala użytkownikowi zalogować się następnie wysłać go/jej zawiadomienie że musi zweryfikować konto, a następnie następne logowanie jest zablokowane do czasu, gdy użytkownik go nie zweryfikował (myślę, że to jest lepsze niż zmuszenie użytkownika do otwarcia jego pierwszego)

Wyślij użytkownika a e-mail weryfikacyjny

Możesz wysłać weryfikację adresu wyślij wiadomość e-mail do użytkownika za pomocą metody sendEmailVerification . Na przykład:

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."); 
       } 
      } 
     }); 
Powiązane problemy