【问题标题】:Type mismatch: inferred type is String? but String was expected on kotlin and firebase类型不匹配:推断类型是字符串?但是在 kotlin 和 firebase 上应该使用 String
【发布时间】:2020-08-26 02:24:36
【问题描述】:
我有一个小问题,我在第 3 行收到这条消息:
类型不匹配:推断类型是字符串?但字符串是预期的
if(task.isComplete){
val user:FirebaseUser?=auth.currentUser
verifyEmail(user)
val userBD=dbReference.child(user?.uid)
userBD.child("Name").setValue(name)
userBD.child("lastName").setValue(lastname)
}
【问题讨论】:
标签:
firebase
kotlin
firebase-realtime-database
【解决方案1】:
如果您确定 user 有一个值,您可以使用以下命令对其进行硬转换:
val userBD=dbReference.child((user as User).uid)
user as User 将User? 转换为User,然后您可以调用uid。但是如果user是null,上面会崩溃。
如果您不确定,最好进行检查:
if (user is User) {
val userBD=dbReference.child(user.uid)
userBD.child("Name").setValue(name)
userBD.child("lastName").setValue(lastname)
}
if (user is User) { 检查将User? 转换为User,然后您可以调用uid。