我正在开发一个教育应用程序,其中教师可以为学生创建/编辑/删除主题和活动,同时监控他们的进度(如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"。
答案 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) )并使用其他非默认实例创建帐户。
但是,从安全的角度来看,第一个建议是正确的方法。