且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android:从Firebase数据库检索特定用户的数据

更新时间: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() {..}