在我的電腦中,ExploreFragment.java我有一個EditText,它基本上允許用戶搜索存儲在Firebase實時數據庫中的國家/地區(qū)名稱。我要實現的是,當用戶在EditText中鍵入內容,然后在鍵盤上按“提交”時,它將進行查詢,以檢索每個在其名稱中鍵入了字符串的國家,然后將其重定向到我的片段FilteredResultsFragment.java,顯示檢索到的國家/地區(qū)的名稱。我的片段有一個帶有適配器的回收站視圖。我還沒有做到這一點。我需要檢索一個帶有URL的列表和一個帶有名稱的列表。查詢應如下所示:FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();Log.d("TAMANHO","size = "+paisEscolhido.size());for (int i = 0; i<paisEscolhido.size(); i++) { Log.d("CONTINETNE","size = "+paisEscolhido.get(i)); DatabaseReference paisNomeContinentes = mDatabase.getReference().child("paises"); Query queries = paisNomeContinentes.orderByChild("Continente").equalTo(paisEscolhido.get(i)); queries.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { List<String> imagemPaisList = new ArrayList<>(); List<String> nomePaisList = new ArrayList<>(); for (DataSnapshot ds : dataSnapshot.getChildren()) { String imagemPais = ds.child("Imagem").getValue(String.class); String nomePais = ds.child("Nome").getValue(String.class); imagemPaisList.add(imagemPais); nomePaisList.add(nomePais); } int urlCount = imagemPaisList.size(); // int randomImage = new Random().nextInt(urlCount); for (int i = 0; i < nomePaisList.size(); i++) { Integer randomVariavel = new Random().nextInt(urlCount); randomImagemPaisList.add(imagemPaisList.get(randomVariavel)); randomNomePaisList.add(nomePaisList.get(randomVariavel)); }
1 回答

aluckdog
TA貢獻1847條經驗 獲得超7個贊
如果要用于startAt()
過濾數據,則還必須使用,endAt()
因為startAt()
它是查詢的起點,而不是過濾器。通過\uf8ff
在的搜索字符串后面添加(最后一個unicode字符),您endAt(
可以限制查詢以僅獲取以搜索字符串開頭的值:
Query queries = paisNomeContinentes.orderByChild("Nome").startAt("Po").endAt("Po" + "\uf8ff");
請記住,這只會獲取以搜索字符串開頭的項目,而不是包含搜索字符串的項目。
添加回答
舉報
0/150
提交
取消