存储Firebase社交身份验证用户数据

时间:2020-02-09 23:13:41

标签: android database firebase-authentication social

我正在尝试使用Firebase身份验证构建应用程序,我想使用电子邮件和密码注册,还希望通过Google或Twitter登录。 当用户使用电子邮件和密码注册时,他选择他的显示名称,然后我将其存储到数据库,uid和显示名称。可行,如果用户想再次使用同一封邮件,因为该邮件在数据库中,因此他无法注册,并且成功登录后,我将根据uid获得显示名称。

现在我要添加注册和社交登录,但是没有单独的注册和登录方法。这是否意味着每次用户注册/登录时,我仅读取数据,显示名称并检查其是否在数据库中,是否添加或不添加是否存在?我是否需要检查它是否存在,或者只是尝试再次将其添加到数据库?我计划在数据库中添加其他一些与用户相关的数据,这就是为什么我需要将用户存储在数据库中。

我错过了什么吗?对Firebase身份验证流程有错误的理解?

编辑: 我正在做的是,当用户使用社交帐户登录时,我检查数据是否存在并将其添加。但是,这感觉比添加数据要慢,因此对于许多用户而言,检查实际上会花费很长时间?在每次登录时添加此检查是否正确?

ref.orderByChild("uid").equalTo(uid).addListenerForSingleValueEvent(object : ValueEventListener{
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                if (!dataSnapshot.exists()) {
                //data doesnt exist, put it in DB
                }else{
                //data exist, do stuff
                }
            }override fun onCancelled(databaseError: DatabaseError) {
                //gone wrong, log error...
            }
        })

0 个答案:

没有答案