Android: Retrieve data of a specific user from a Firebase database

前端 未结 3 1578
深忆病人
深忆病人 2020-12-06 08:43

I am trying to read \"specific\" data from my firebase realtime database. I have seen examples of getting all data from a table and going through it to find the

3条回答
  •  攒了一身酷
    2020-12-06 09:01

    You need to do the query:

    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) {
      }
     });
    

    Assuming you have this database:

    user
      randomid
         firstName: John
         familyName: familyName_here
    

    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().

    You need to retrieve the userid:

    FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
    String userid=user.getUid();
    

    then add it to the database:

     myRef.child(userid).setValue(user);
    

    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() {..}
    

提交回复
热议问题