Firebase管理员SDK Java:找不到提供的电子邮件的用户记录

时间:2018-10-01 17:02:40

标签: android firebase kotlin firebase-authentication firebase-admin

我正在尝试通过电子邮件在后端获取用户的用户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$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 :(得分:0)

我不是Firebase的专家。 (我从字面上将“ Firebase getUserByEmail”放到了网络搜索中。)但是粗读Firebase Guide for managing users可以说是getUserByEmail(email)

  

此方法返回对应于用户的UserRecord对象   提供的电子邮件。

     

如果提供的电子邮件不属于现有用户或该用户   由于其他任何原因而无法获取,则Admin SDK会引发错误。   有关错误代码的完整列表,包括描述和解决方法   步骤,请参见Admin Authentication API Errors

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

没有Kotlin的例子。 Java示例未显示异常处理,但是并没有改变对错误处理方式的解释,您可以在自己的代码中清楚地看到错误异常。

在某些情况下,此方法在JVM语言下会返回null,但这不是这种情况。