Firebase admin SDK Java:找不到所提供电子邮件的用户记录

Firebase admin SDK Java: No user record found for the provided email

我正在尝试通过后端的电子邮件获取用户的用户 ID。我使用的代码是这样的。

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.execute(FirebaseAuth.java:613)
at com.google.firebase.auth.FirebaseAuth.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() 应该 return null 但它会抛出异常。

我不是 Firebase 专家。 (我真的把 "Firebase getUserByEmail" 放到了网络搜索中。)但是粗略地阅读了 Firebase Guide for managing users 就知道 getUserByEmail(email):

This method returns a UserRecord object for the user corresponding to the email provided.

If the provided email does not belong to an existing user or the user cannot be fetched for any other reason, the Admin SDK throws an error. For a full list of error codes, including descriptions and resolution steps, see Admin Authentication API Errors.

没有 提及对所描述的任何用户查找方法返回 null。所有示例都显示 catch 块中的错误处理(至少对于 Java 脚本示例), 而非 空处理。至少对于此处描述的版本和发行版。

没有 Kotlin 示例。 Java 示例没有显示异常处理,但它没有改变如何处理错误的解释,并且您在自己的代码中清楚地看到了错误异常。

在 JVM 语言下,可能存在此方法 returns null 的情况,但此处并非如此。