【发布时间】:2019-10-01 18:09:37
【问题描述】:
我正在通过 Firebase 中的手机号码对用户进行身份验证。目前我处于测试模式。我的想法是,如果以前没有使用过手机号码,那么就会创建一个新用户。这里我使用了一个函数 saveUserToFirebaseDatabase。我的想法是这个函数将验证用户是否已经存在。但是我现在写它的方式并没有。因此,当用户注销并登录时,我在其他地方插入的孩子的值会丢失。这显然是因为函数 saveUserToFirebaseDatabase 正在重新创建用户。
在这里我观察到一件有趣的事情,即为手机号码创建的 uid 在所有登录时都保持不变。这让我对 saveUserToFirebaseDatabase 函数更加困惑。这是我在数据库中保存用户的代码。
private fun saveUserToFirebaseDatabase(){
val uid = FirebaseAuth.getInstance().uid ?: ""
val ref = FirebaseDatabase.getInstance().getReference("/users/$uid")
val user = User(uid, "","+91"+MobileNumber.text.toString(), "")
ref.setValue(user)
}
class User(val uid: String, val username: String, val mobile: String, val mail: String)
用户身份验证例程符合 Firebase 文档,并且运行顺畅。有人可以解释一下这个函数 saveUserToFirebaseDatabase 是如何工作的。为什么uid总是保持不变,虽然,其他孩子的用户名和邮件被重置为“”
【问题讨论】:
-
你没有创建函数
saveusertofirebasedatabase吗? -
是的,我做到了。我的困惑在于为什么重新创建用户时的 uid 保持不变。由于有些混乱,我将编辑我的问题。
标签: android firebase mobile kotlin firebase-authentication