2016-06-30 4 views
5

Итак, я включил электронную почту/пароль в консоли dev, и все работает нормально. За исключением того, что я должен получать электронное письмо с подтверждением по электронной почте, которую я вводил, но я не получаю его. Я думал, что он делает это автоматически, но, видимо, этого не происходит.Как отправить уведомление по электронной почте Firebase при регистрации?


Метод Подписаться:

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

} 

Он должен посылать, но, к сожалению, это не так. Я где-то читал SO, что вам нужно добавить метод или что-то еще, чтобы отправить электронное письмо, и оно отсутствует в документах, но это не было Java.


Редактировать

Согласно here, она поддерживается только в прошивке и Интернете. Что довольно удивительно, ведь в конце концов android IS Google, а Google - Firebase. Это возможно даже при создании персонализированного отправленного письма?


Edit 2: Чтобы быть более ясным, делает Android есть E-mail отправителя как C#. Это было бы лучшим решением, если для этого не существует API.

+0

Я думаю, вы правы, чтение [документы] (https://firebase.google.com/docs/auth/custom-email-handler) эта функция доступна только в ИОС и скор. Также есть некоторые обсуждения [здесь] (http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass), если вы хотите посмотреть на некоторые обходные пути. – adolfosrs

+0

Нет, это не дубликат, если вы не читали, я сказал, что видел такие вопросы, а мой совершенно другой. –

+0

Вы читали этот? http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass – johni

ответ

1

Теперь вы можете подключить любые пробелы Firebase в почтовом ящике, скопировав свой собственный отправитель электронной почты с помощью Firebase Cloud Functions. Вот пример here. Конечно, это означает больше работы, чем просто настройка, как встроенные параметры, но по крайней мере означает, что мы можем делать все, что нам нужно. :)

1

Теперь согласно updated firebase documentation

Вот как отправить проверки почты пользователю, что в вашем случае, после создания учетной записи и позволяя пользователю войти в то отправить ему/ей уведомления что он должен подтвердить учетную запись, а затем следующий логин заблокирован до тех пор, пока он/она не проверит (я думаю, что это лучше, чем заставить пользователя сначала открыть его электронную почту)

Отправить пользователю a подтверждение по электронной почте

Вы можете отправить подтверждение адреса электронной почты пользователю с помощью метода sendEmailVerification . Например:

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."); 
       } 
      } 
     }); 
Смежные вопросы