当我从 firebase 数据库以各自的角色登录时,我想打开三个不同的活动
Posted
技术标签:
【中文标题】当我从 firebase 数据库以各自的角色登录时,我想打开三个不同的活动【英文标题】:I want to open three different activity when I login with their respective roles from firebase database 【发布时间】:2019-11-21 22:50:02 【问题描述】:我的 firebase 数据库中有三个角色
-
老师
学生
协调员。
如果我用教师登录,那么它应该从数据库中检查角色并打开教师活动。学生和协调员也一样。
** 代码:**
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(Login_Form.this, new OnCompleteListener<AuthResult>()
@Override
public void onComplete(@NonNull Task<AuthResult> task)
if (task.isSuccessful())
Intent intent = new Intent(Login_Form.this, Adminpage.class);
progressDialog.dismiss();
startActivity(intent);
else
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Login Failed Or User Not Available", Toast.LENGTH_LONG).show();
【问题讨论】:
到目前为止你尝试了什么? 您可以尝试使用字段角色存储用户ID, 你可能对这篇文章感兴趣:medium.com/better-programming/… 向我们展示您的代码和您迄今为止所取得的成就! 我尝试过使用 Firebase 身份验证,然后它适用于单一角色。但是对于 3 个不同的角色,我需要相同的内容 【参考方案1】:这个我试过了
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(Login_Form.this, new OnCompleteListener<AuthResult>()
@Override
public void onComplete(@NonNull Task<AuthResult> task)
if (task.isSuccessful())
Intent intent = new Intent(Login_Form.this, Adminpage.class);
progressDialog.dismiss();
startActivity(intent);
else
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Login Failed Or User Not Available", Toast.LENGTH_LONG).show();
【讨论】:
这不是答案。请改为编辑您的帖子。【参考方案2】:登录时,您必须使用电话号码或电子邮件 ID。 如果是这样,那么您可以使用输入的电子邮件 ID 获取结果。
postRef.orderByChild("email").equalTo(email)
.addListenerForSingleValueEvent(object : ValueEventListener
override fun onCancelled(p0: DatabaseError)
override fun onDataChange(dataSnapshot: DataSnapshot)
if (dataSnapshot.exists())
val userData: HashMap<String, User> = dataSnapshot.value as HashMap<String, User>
var userId :String = ""
userData.keys.forEach userId =it
Toast.makeText(this@SplashActivity,"Welcome Back . Happy to see you again" ,Toast.LENGTH_SHORT).show()
startHomeActivity()
)
在上面,我检查了电子邮件是否存在于 firebase 数据库中。一旦成功,我们就会有数据快照,您将在其中获得与该电子邮件 ID 相关联的完整数据。在那里您可以检查其教师、学生等是否存在。 检查 dataSnapshot 是否为空,以确保您的 dataSnapshot 包含用户数据。
val userData: HashMap<String, User> = dataSnapshot.value as HashMap<String, User>
这将为您提供条目的全部数据。
【讨论】:
以上是关于当我从 firebase 数据库以各自的角色登录时,我想打开三个不同的活动的主要内容,如果未能解决你的问题,请参考以下文章
Android - Firebase - 不同类型的用户登录