Java 如何从firebase按值获取数据?
当我有两个孩子时,如何从firebase调用值? 如果值为Guru,则转到仪表板Guru 如果值为Murid,则转到仪表板Murid 我刚得到空值 这是我的密码Java 如何从firebase按值获取数据?,java,android,firebase,Java,Android,Firebase,当我有两个孩子时,如何从firebase调用值? 如果值为Guru,则转到仪表板Guru 如果值为Murid,则转到仪表板Murid 我刚得到空值 这是我的密码 db.getReference().child(FirebaseAuth.getInstance().getCurrentUser().getUid()) .addListenerForSingleValueEvent(new ValueEvent
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();
}
}
dataSnapshot.child(“Guru”).getValue().toString()
在用户id下搜索JSON中不存在的名为“Guru”的密钥。所以它返回空值。从问题中,如果权限是Guru,则转到DashboardGuru活动,如果权限是Murid,则转到DashboardMurid。因此,更新后的代码应为:
String priv = dataSnapshot.child("privilege").getValue().toString();