我有一个代码(有效),使我能够检索特定大陆的所有国家/地区:
DatabaseReference paisNomeContinentes = mDatabase.child("continentes").child(Constants.PAISES_EUROPA).child("Paises"); // C1 - ÁFRIA (Constants.PAISES_AFRICA)
ValueEventListener valueEventListener1 = new ValueEventListener() { // C2 - ÁSIA (Constants.PAISES_ASIA)
@Override // C3 - ANTÁRTIDA (Constants.PAISES_ANTARTIDA)
public void onDataChange(DataSnapshot dataSnapshot) { // C4 - AMÉRICA (Constants.PAISES_AMERICA)
List<String> nomePaisList = new ArrayList<>(); // C5 - EUROPA (Constants.PAISES_EUROPA)
// C6 - OCEANIA (Constants.PAISES_OCEANIA)
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String nomePais = ds.child("Nome").getValue(String.class);
nomePaisList.add(nomePais);
}
int urlCount = nomePaisList.size();
int randomNumber = new Random().nextInt(urlCount);
List<String> randomNomePaisList = new ArrayList<>();
for (int i=0; i<=9; i++) {
randomNomePaisList.add(nomePaisList.get(randomNumber));
txtHomeDesc.setText(randomNomePaisList.get(i)); // Inserir na TextView o nome do respetivo país
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
paisNomeContinentes.addListenerForSingleValueEvent(valueEventListener1);
这是我的 Firebase 实时数据库
此代码的结构:
我创建这个结构是为了测试。我最终使用了这个:
问题是,我的代码不适用于此结构。如何检索具有 Continente = Europa
的国家/地区?
最佳答案
您需要使用查询:
FirebaseDatabase mDatabase=FirebaseDatabase.getInstance();
DatabaseReference paisNomeContinentes = mDatabase.getReference().child("paises");
Query queries=paisNomContinentes.orderByChild("Continente").equalTo("Europa");
queries.addListenerForSingleValueEvent(valueEventListener1);
快照位于子paises
,然后使用查询,您将能够检索具有 Continente=Europa 的数据
关于java - 进行查询以检索每个大陆的国家/地区 Firebase 实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192486/