更新时间:2022-06-03 03:20:39
您需要执行以下查询:
orderByChild("FirstName").equalTo(name);
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("user");
reference.orderByChild("firstName").equalTo(name).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String familyname=datas.child("familyName").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
假设您有此数据库:
user
randomid
firstName: John
familyName: familyName_here
另一种方法是使用用户ID来检索数据,但是正如我在问题中看到的那样,您正在使用push()
保存随机ID.
Another way is to use the userid to be able to retrieve the data, but as I see in the question you are saving a random id using push()
.
您需要检索用户ID:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();
然后将其添加到数据库中
then add it to the database:
myRef.child(userid).setValue(user);
然后仅检索John的数据:
then to retrieve data only for John:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("user");
reference.child(userid).addListenerForSingleValueEvent(new ValueEventListener() {..}