答案 0 :(得分:1)
您应该使用Firebase身份验证。它将为您处理。您可以 还使用安全规则仅将权限授予某些类型的帐户https://firebase.google.com/docs/auth/
答案 1 :(得分:1)
要处理身份验证,应使用FirebaseAuth。请参阅docs
要查询一次数据,您可以使用此
FirebaseDatabase.getInstance().getReference().child("users")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This listens for the data only once and gives it to you in dataSnapshot.
// Use this code to get the userEmail.
// String userEmail = String.valueOf(dataSnapshot.child("userEmail"));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 2 :(得分:1)
要根据userType
进行查询,然后尝试以下操作:
FirebaseDatabase.getInstance().getReference().child("users").orderByChild("userType").equalTo("Child").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String id=dataSnapshot.child("id").getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
使用查询orderByChild
,您将能够检索与该查询结果相关的数据。
答案 3 :(得分:1)
要解决此问题,您一定应该实现Firebase Authentication并通过在用户之间添加uid
作为唯一标识符来稍微改变数据库结构。因此您的数据库结构应如下所示:
Firebase-root
|
--- users
|
--- uid
|
--- userEmail: "mayank@gmail.com"
|
--- userPassword: "123456"
|
--- userType: "Child"
如果您不使用这样的数据库结构,最终将覆盖一个用户。要获取uid
,您只需使用以下代码行即可:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
最后,要查询数据库,您应该使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("users").orderByChild("userType").equalTo("Child");
query.addListenerForSingleValueEvent(/* ... */);
查询的结果将是数据库中的所有子项。