我想在firebase中获取数据的listarray并将其放入我的listview中,但是我无法添加条件..
这是基地。
"Sendmail" : {
"-LkYHbH6FfiR-8ua7RQS" : {
"deskripsi" : "coba",
"perihal" : "coba",
"username_from" : "rezkysaputra96",
"username_to" : "hendra_admin"
},
"-LkbF2gEg6Q-cre8gSnd" : {
"deskripsi" : "example2",
"perihal" : "example2",
"username_from" : "rezkysaputra96",
"username_to" : "hendra_admin"
},
"-LkbF7YTY5yr7nMlAZss" : {
"deskripsi" : "example3",
"perihal" : "example3",
"username_from" : "rezkysaputra96",
"username_to" : "nurhamid123"
}
}
这是我的代码,这是从“ sendmail”中获取所有数据,但是我想从“ sendmail”中获取具有一定条件的数据。
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Sendmail");
ListView listView = (ListView) view.findViewById(R.id.listview);
arrayAdapter = new ArrayAdapter<String>( getActivity().getApplicationContext(), android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(arrayAdapter);
reference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String value = dataSnapshot.getValue(Sendmail.class).toString();
arrayList.add(value);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
我如何从sendmail中获取列表数据,其中username_to = hendra_admin? 谢谢,我是firebase和java中的新手。
答案 0 :(得分:0)
您可以使用Query
类来过滤查询。有关处理数据列表的信息,请参见Firebase reference page。简而言之,您需要先使用orderBy..
方法之一对查询进行排序,然后再对其进行过滤。在您的情况下,您需要使用orderByChild
,因为您要基于子username_to
过滤结果。然后使用equalTo
过滤结果。这应该返回您想要的内容:
Query query = databaseReference.child("Sendmail").orderByChild("username_to").equalTo("hendra_admin");
答案 1 :(得分:0)
这也是我在此论坛上找到的解决方案。 谢谢 。 这是我的代码。
&
}