Android 在firebase实时数据库中查找所有匹配项
您好,请我需要在数据库中搜索firebase所有外观与一个参数,并写在显示器上或保存在对象。(如果保存在对象中,我可以处理它) 我的数据库正在查找 我需要获得所有匹配的mDatabaseReference.child(“horse”).child(kon.getUid()).child(“plemeno”)和“Hnedy” 把钱存起来。或在显示器上进行写操作,然后进行搜索 我不知道为什么 谢谢 如果我需要运行所有数据库进行搜索,或者它就在这里 请给我所有我选择的最适合我的建议 如果你需要更多的信息,请写信,但我不知道你需要什么 …我不知道该说什么 //////////////////////////////////////////////// 首先,我用这个代码在显示器上写下所有数据库Android 在firebase实时数据库中查找所有匹配项,android,search,firebase,firebase-realtime-database,Android,Search,Firebase,Firebase Realtime Database,您好,请我需要在数据库中搜索firebase所有外观与一个参数,并写在显示器上或保存在对象。(如果保存在对象中,我可以处理它) 我的数据库正在查找 我需要获得所有匹配的mDatabaseReference.child(“horse”).child(kon.getUid()).child(“plemeno”)和“Hnedy” 把钱存起来。或在显示器上进行写操作,然后进行搜索 我不知道为什么 谢谢 如果我需要运行所有数据库进行搜索,或者它就在这里 请给我所有我选择的最适合我的建议 如果你需要更多的
private void addEventFirebaseListener() {
//Progressing
circular_progress.setVisibility(View.VISIBLE);
list_data.setVisibility(View.INVISIBLE);
mDatabaseReference.child("horse").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(list_kone.size() > 0)
list_kone.clear();
for(DataSnapshot postSnapshot:dataSnapshot.getChildren()){
Kon kon = postSnapshot.getValue(Kon.class);
list_kone.add(kon);
}
ListViewAdapter adapter = new ListViewAdapter(All.this,list_kone);
list_data.setAdapter(adapter);
circular_progress.setVisibility(View.INVISIBLE);
list_data.setVisibility(View.VISIBLE);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
但我认为这对搜索来说并不重要试试这个:
mDatabaseReference.child("horse").orderByChild("plemeno").equalTo("Hnedy").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// retrieve the data into an object: kon here
for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
Kon kon = postSnapshot.getValue(Kon.class);
if (cenaFilter && kon.getCena().equals("100")) {
// RETRIEVE DATA
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
这里的cenaFilter
是一个布尔值,它等于true
,如果用户选择了这个特定的过滤器,false
,否则试试这个:
mDatabaseReference.child("horse").orderByChild("plemeno").equalTo("Hnedy").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// retrieve the data into an object: kon here
for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
Kon kon = postSnapshot.getValue(Kon.class);
if (cenaFilter && kon.getCena().equals("100")) {
// RETRIEVE DATA
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
这里的
cenaFilter
是一个布尔值,如果用户选择了这个特定的过滤器,则等于true
,否则等于false
,并且从哪个变量获取所有其他信息?用于打印输出。dataSnapshot?正如您通常所做的:for(dataSnapshot postSnapshot:dataSnapshot.getChildren()){…}
谢谢您的帮助。。。但是如果我想搜索更多的标准,例如plemeno:hnedy和cena:100?好的,那么你可以接受答案:)据我所知,使用firebase,你不能对数据进行两次排序/过滤。您可以在for循环中这样做:for(DataSnapshot postSnapshot:DataSnapshot.getChildren()){if(yourObj.getCena().equals(“100”){…}
请更新您的answre或edit for search by 2准则以及从哪个变量获取所有其他信息?用于打印输出。dataSnapshot?正如您通常所做的:for(dataSnapshot postSnapshot:dataSnapshot.getChildren()){…}
谢谢您的帮助。。。但是如果我想搜索更多的标准,例如plemeno:hnedy和cena:100?好的,那么你可以接受答案:)据我所知,使用firebase,你不能对数据进行两次排序/过滤。您可以在for循环中这样做:for(DataSnapshot postSnapshot:DataSnapshot.getChildren()){if(yourObj.getCena().equals(“100”){…}
请更新您的answre或按2个标准编辑搜索您的问题中包含了JSON树的图片。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出JSON链接轻松获得该文本。将JSON作为文本使其具有可搜索性,使我们能够轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。您的问题中包含了JSON树的图片。请将其替换为实际的JSON作为文本,您可以通过单击Firebase数据库控制台中的导出JSON链接轻松获得该文本。将JSON作为文本使其具有可搜索性,允许我们轻松地使用它来测试您的实际数据,并在我们的答案中使用它,这通常是一件好事。