首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FIrebase移动身份验证并将用户保存到数据库

FIrebase移动身份验证并将用户保存到数据库
EN

Stack Overflow用户
提问于 2019-05-15 00:47:48
回答 1查看 106关注 0票数 1

我正在通过Firebase中的手机号码验证用户身份。目前我正处于测试模式。我的想法是,如果手机号码以前没有使用过,那么就会创建一个新用户。这里我使用了一个函数saveUserToFirebaseDatabase。我的想法是这个函数将验证用户是否已经存在。但是到目前为止,我写的方式并不是这样。因此,当用户注销和登录时,我在其他地方插入的子代的值就会丢失。这显然是因为函数saveUserToFirebaseDatabase正在重新创建用户。

这里我观察到一件有趣的事情,那就是为手机号码创建的uid对于所有登录都是相同的。这进一步让我对saveUserToFirebaseDatabase函数感到困惑。下面是我在数据库中保存用户的代码。

代码语言:javascript
复制
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始终保持不变,尽管其他孩子的用户名和邮件被重置为"“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 01:58:56

这是你的代码:

代码语言:javascript
复制
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)

首先,检索userId,然后将userId添加到数据库中的users下。

之后,创建User类的实例并将user添加到数据库中。

userId是当前登录用户的id。如果有新的经过身份验证的用户登录,则会将新用户添加到数据库中。

userId是随机生成的,它的创建与电子邮件、Facebook或任何其他登录类型无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56135092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档