6

Я знал, что мы можем проверить электронную почту пользователей с помощью Firebase Auth 3.0. Я не могу найти документацию по проверке электронной почты на Android. Я могу найти то же самое для iOS, а также для Интернета, но не для Android. Любая ссылка на документацию будет полезна.Проверка электронной почты с помощью Firebase 3.0 на Android

Email Types

Из образа, то ясно, что когда-то знаки пользователя в, он будет намекал о том, что по электронной почте, чтобы подтвердить свою подписку. Я подписался на себя, а также подтвердил в пользователей раздел в Auth вкладка, и я могу видеть, что мой идентификатор почты и firebase генерируют уникальный идентификатор пользователя. Здесь отсутствует письмо с подтверждением электронной почты. Кто-то попробовал это, или я слишком рано пытаюсь это сделать? Спасибо за вашу помощь.

+0

Чтобы проверить поведение, я даже пытался с двумя другими идентификаторами почты, и я не могу получить электронное письмо с подтверждением. – Vijay

+0

Состояние вашего вопроса изменилось; теперь есть более современный ответ. – Makoto

ответ

11

Update

Email проверка доступна в version 9.6 and higher of the Firebase SDK for Android.

Оригинальный ответ

Email верификация не доступен для Android еще. Также ответил here с большим контекстом.

+0

@FrankvanPuffelen: этот ответ [обсуждается в Meta] (http://meta.stackoverflow.com/q/337366/1079354). – Makoto

3

Альтернативой предложил команде Firebase

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

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

Это будет работать для первоначального тестирования, если вы знаете идентификаторы электронной почты людей, которые будут тестировать ваше приложение, пока проверка электронной почты не станет доступной для Android.

1

Так как электронная почта проверка работает только с Email/Password authentication, лучшим местом, чтобы отправить его пустоши быть в onComplete методе createUserWithEmailAndPassword(...) метода, после регистрации успешно.

firebaseAuth.createUserWithEmailAndPassword(email, password) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 
         if (task.isSuccessful()) { 
          sendVerificationEmail(); 
         .... 

Метод пользовательского sendVerification является:

public void sendVerificationEmail() { 
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

    if (user != null) { 
     user.sendEmailVerification() 
       .addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if (task.isSuccessful()) { 
          Toast.makeText(SignUpActivity.this, "Signup successful. 
           Verification email sent", Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }); 
    } 

} 

Вы можете проверить, если пользователь проверил свою электронную почту в любом месте вашего приложения по телефону:

mAuthListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      firebaseUser = firebaseAuth.getCurrentUser(); 
      if (firebaseUser != null) { 
       Log.e(TAG, firebaseUser.isEmailVerified() ? "User is signed in and email is verified" : "Email is not verified"); 
      } else { 
       Log.e(TAG, "onAuthStateChanged:signed_out"); 
      } 
     } 
    }; 

 Смежные вопросы

  • Нет связанных вопросов^_^