gpt4 book ai didi

java - Firebase根据数据库中存储的不同值打开不同的 Activity

转载 作者:行者123 更新时间:2023-12-02 10:21:53 25 4
gpt4 key购买 nike

我正在检查当前用户是否已登录我的应用程序并且从未注销过。如果是这样,在启动我的应用程序时,它将打开 Activity A/B,具体取决于 userDepartment 的值存储在数据库中。

我的代码是这样的:

        firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();

//user has logged in and never once logged out. auto bring to the specific dashboard page based on account type.
if (user != null) {
finish();
final String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("userDepartment").child(uid);
if (databaseReference.equals("Administrator")) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
} else {
startActivity(new Intent(MainActivity.this, LocalUserDashboard.class));
}
}

逻辑不起作用,因为当我以管理员身份登录时,关闭应用程序但没有注销,预期结果是管理员用户将被带到 SecondActivity类(class)。然而,它打开了LocalUserDashboard类代替。然后,如果我以本地用户身份登录,关闭应用程序并且没有注销,它确实会将我带到 LocalUserDashboard类,正如预期的那样。

我不完全确定我的代码是否正确,因为我依赖于 SO 中的各种来源以及官方文档,并且有点将所有内容混合在一起。

请帮助我。谢谢。

下面是我的数据库结构:

enter image description here

最佳答案

您直接与databaseReference进行比较,首先执行请求以使用受尊重的userId从firebase获取数据

databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot!=null)
{
String userDepartment = dataSnapshot.child("userDepartment").getValue());
//Now check with this userDepartment
if (userDepartment .equals("Administrator")) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
} else {
startActivity(new Intent(MainActivity.this, LocalUserDashboard.class));
}
}

}

关于java - Firebase根据数据库中存储的不同值打开不同的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54284649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com