Как проверить, существует ли электронное письмо в базе данных Firebase, используя Kotlin? - PullRequest
0 голосов
/ 23 апреля 2020

Я видел несколько ответов на этот вопрос, используя реализацию Java; Однако я не смог успешно преобразовать его. Реализация Java, похоже, использует подход «попробуй, поймай», чтобы определить, встречается ли исключение FirebaseAuthUserCollisionException или нет. Но из исследований в Интернете, кажется, попробуйте, улов устарел в Kotlin.

FirebaseAuth.getInstance().createUserWithEmailAndPassword(email,password)
        .addOnCompleteListener(){it:Task<AuthResult>
             if(!it.isSuccessful)

Это единственный фрагмент кода, который у меня есть. Я ценю всю помощь! Заранее спасибо.

1 Ответ

0 голосов
/ 23 апреля 2020

try / catch не устарело в Kotlin. Это по-прежнему работает по сути так же. Это просто не очень полезно при работе с асинхронными API-интерфейсами, предоставляемыми службами Firebase и Play.

Все API-интерфейсы Firebase являются асинхронными, поэтому необходимо проверять ошибки в обратных вызовах, которые вы прикрепляете к объекту Task, возвращенному из звонок. Это одинаково для Java и Kotlin. Возможно, вы захотите узнать больше о Task API , чтобы лучше разобраться с API-интерфейсами Firebase, которые возвращают Task для представления асинхронной работы. В показанном вами коде вы проверяете ошибки в слушателе onComplete, просматривая объект исключения в результате, если он не был успешным:

FirebaseAuth.getInstance().createUserWithEmailAndPassword(email,password)
        .addOnCompleteListener() { it:Task<AuthResult>
             if (!it.isSuccessful) {
                 val exception = it.exception
                 // do something with this exception, according to the Firestore API docs
             }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...