Android 如何从firebase检索特定数据?

Android 如何从firebase检索特定数据?,android,database,firebase,firebase-realtime-database,real-time,Android,Database,Firebase,Firebase Realtime Database,Real Time,在检索数据时,我正在使用此代码 databaseReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot data : dataSnapshot.getChildren()) { Firebasemodel firebasemodel = data.g

在检索数据时,我正在使用此代码

databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
     for (DataSnapshot data : dataSnapshot.getChildren()) {
       Firebasemodel firebasemodel = data.getValue(Firebasemodel.class);
       firebasemodels.add(firebasemodel);
    }
 }
 @Override
public void onCancelled(DatabaseError databaseError) {

}
});` 
此代码段返回firebase数据库的完整数据

但我想检索特定用户的完整数据。我如何做到这一点

提前感谢

请尝试以下代码:

FirebaseDatabase.getInstance().getReference().child("notepad-secure/notepad").addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Iterator<DataSnapshot> dataSnapshots = dataSnapshot.getChildren().iterator();

        while (dataSnapshots.hasNext()) {
            user = dataSnapshotChild.getValue(User.class);
            users_list.add(user);
        }
    }

    @Override
        public void onCancelled(DatabaseError databaseError) {
        Log.d("Error", "---" + databaseError.getMessage());
    }
});
申报

List<User> users_list;
User user; 
列出用户\u列表;
用户;

请使用此代码获取所有数据:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference notepadRef = rootRef.child("notepad-secure").child("notepad");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String id = ds.child("id").getValue(String.class);
            String note = ds.child("note").getValue(String.class);
            String title = ds.child("title").getValue(String.class);
            String user = ds.child("user").getValue(String.class);
            Log.d("TAG", id + " / " + note + " / " + title + " / " + users);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
notepadRef.addListenerForSingleValueEvent(eventListener);
您的输出将是:

-Kono2LMSe... / sadsad / sadsad / NK46X......
如果只想检索特定数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference notepadRef = rootRef.child("notepad-secure").child("notepad").child("NK46...");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
    String id = ds.child("id").getValue(String.class);
    String note = ds.child("note").getValue(String.class);
    String title = ds.child("title").getValue(String.class);
    String user = ds.child("user").getValue(String.class);
    Log.d("TAG", id + " / " + note + " / " + title + " / " + users);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
notepadRef.addListenerForSingleValueEvent(eventListener);

它肯定会有用。

编辑了我的答案。我添加了
.child(“记事本安全”)
。uotput应如上所述。它工作吗?不,它不工作,让我举个例子,假设我有3个用户,像A,B,C。A做了3个笔记,B做了2个笔记,C做了10个笔记。如果A有loggedin,那么我只想检索A笔记的数据。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference notepadRef = rootRef.child("notepad-secure").child("notepad").child("NK46...");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
    String id = ds.child("id").getValue(String.class);
    String note = ds.child("note").getValue(String.class);
    String title = ds.child("title").getValue(String.class);
    String user = ds.child("user").getValue(String.class);
    Log.d("TAG", id + " / " + note + " / " + title + " / " + users);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
notepadRef.addListenerForSingleValueEvent(eventListener);