Firebase admin SDK Java: не найдена запись пользователя для предоставленной электронной почты - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь получить идентификатор пользователя по электронной почте на сервере.Я использую следующий код:

val user:UserRecord?
try {
  user=FirebaseAuth.getInstance().getUserByEmail(email)
}catch(e:Exception){
  map["msg"]=e.localizedMessage
  return map
    }

map["msg"]=FirebaseAuth.getInstance().createCustomTokenAsync(user.uid).get()
return map

В строке 3 создается исключение.

com.google.firebase.auth.FirebaseAuthException: No user record found for the 
provided email: id
at com.google.firebase.auth.FirebaseUserManager.getUserByEmail(FirebaseUserManager.java:138)
at com.google.firebase.auth.FirebaseAuth$7.execute(FirebaseAuth.java:613)
at com.google.firebase.auth.FirebaseAuth$7.execute(FirebaseAuth.java:610)
at com.google.firebase.internal.CallableOperation.call(CallableOperation.java:36)
at com.google.firebase.auth.FirebaseAuth.getUserByEmail(FirebaseAuth.java:590)
at in.ac.krishnacollege.CheckTeacherResource.checkTeacherEmail(CheckTeacherResource.kt:27)

Функция getUserByEmail () должна возвращать значение null, но выдает исключение.

1 Ответ

0 голосов
/ 02 октября 2018

Я не эксперт по Firebase.(Я буквально поместил «Firebase getUserByEmail» в веб-поиск.) Но в кратком чтении Руководство по Firebase для управления пользователями есть что сказать о getUserByEmail(email):

ЭтоМетод возвращает объект UserRecord для пользователя, соответствующего предоставленной электронной почте.

Если предоставленная электронная почта не принадлежит существующему пользователю или пользователь не может быть выбран по любой другой причине, Admin SDK выдает ошибку.Полный список кодов ошибок, включая описания и шаги по устранению, см. Ошибки API аутентификации администратора .

. нет упоминание о возврате нуля для любогоописанных методов поиска пользователя.Все примеры показывают обработку ошибок в блоке catch (по крайней мере для примеров Javascript), не обработка нуля.По крайней мере, для версии и выпуска опишите здесь.

Нет примеров Kotlin.Пример Java не показывает обработку исключений, но он не меняет объяснения того, как должны обрабатываться ошибки, и вы четко видите исключение ошибок в своем собственном коде.

Могут быть обстоятельства, при которых этоМетод возвращает ноль в языке JVM, но здесь это не так.

...