java - 如何从firebase按值获取数据?
问题描述
有两个孩子时如何从firebase调用价值?如果值为 Guru,则转到 DashboardGuru 如果值为 Murid,则转到 DashboardMurid Here Firebase Database 我刚得到空值
这是我的代码
db.getReference().child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Common.currentUser = dataSnapshot.getValue(Pengguna.class);
waitingDialog.dismiss();
String priv = dataSnapshot.child("Guru").getValue().toString();
if(priv.equals("Guru")){
startActivity(new Intent(MainActivity.this, DashboardGuru.class));
finish();
}
else{
startActivity(new Intent(MainActivity.this, DashboardMurid.class));
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
解决方案
然后,当您想按类别选择每个时:
query = databaseReference.child("users").orderByChild("userID")
.equalTo(user.getUid());
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
for (DataSnapshot userDetails : dataSnapshot.getChildren()){
UserAccount userAccount =userDetails.getValue(UserAccount.class);
assert userAccount != null;
if(userAccount.userCategory.equals("Fisher Man")){
Intent startActivityForFisherMan = new Intent(LoginActivity.this, FisherManActivity.class);
startActivity(startActivityForFisherMan);
finish();
}else{
Intent startActivityForCustomer = new Intent(LoginActivity.this, CustomerMainActivity.class);
startActivity(startActivityForCustomer);
finish();
}
}
}else{
Toast.makeText(LoginActivity.this, "Invalid User: Kindly Register", Toast.LENGTH_SHORT).show();
}
}
推荐阅读
- mysql - MYSQL并发选择和更新
- c++ - 在 Linux Makefile 项目的 VisualStudio 中禁用 IntelliSense 的预生成标头 (PCH)
- spring - Spring Security - /logout 处的 CSRF 令牌无效
- gatling - 增加呼叫/用户的数量,直到它中断
- python - 在熊猫中乘以浮点列需要太多时间
- autohotkey - 多个 MouseGetPos 坐标
- java - 邮件收不到邮件
- mysql - MySQL:使用 C 将值插入列
- python - 在 numpy 数组中交换两个整数会导致 IndexError
- .net - 调试挂起的windows窗体