使用当前记录的帐户(Android)注册新的Firebase帐户

时间:2018-01-25 11:12:55

标签: android firebase firebase-authentication

我正在开发一个教育应用程序,其中教师可以为学生创建/编辑/删除主题和活动,同时监控他们的进度(如SoloLearn),我现在取得了90%的进步,并正在测试应用程序,当我遇到这个问题。我创建应用程序,以便只有教师帐户可以为学生创建帐户。当我登录教师帐户时,它将显示教师的基本信息(姓名,电子邮件,咨询类),看起来不错,但是当我为学生创建帐户(教师帐户currentUser)时,我的应用程序将替换当前用户与学生我刚刚创建的帐户(已测试)。

所以我的问题是如何解决在帐户中创建新帐户取代当前用户的问题?

教师/学生的基本信息使用电子邮件作为密钥保存在FirebaseDatabase中。

我在创建帐户时使用了Firebase助理。

我的代码检索userEmail和DatabaseReference

String currentEmail = mAuth.getCurrentUser().getEmail(); mDataRef = FirebaseDatabase.getInstance().getReference() .child("AccountInfo").child("Teacher").child(EncodeString(currentEmail));

EncodeString只是"的字符串替换。"到" DOT"。

1 个答案:

答案 0 :(得分:0)

我认为更好,更安全的方法是使用Firebase Admin SDK。 您可以为教师设置custom user claim,以区别于学生。然后,在创建学生时,将教师的ID令牌和学生的信息发送到您确认教师角色的服务器,然后使用Admin SDK发送create the user

否则,如果您只是想在不注销教师的情况下创建其他帐户,则可以明确[实例化新的FirebaseApp实例](https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp.html#initializeApp(android.content.Context,com.google.firebase.FirebaseOptions,java.lang.String) )并使用其他非默认实例创建帐户。

但是,从安全的角度来看,第一个建议是正确的方法。