java - 进行查询以检索每个大陆的国家/地区 Firebase 实时数据库

标签 java android firebase firebase-realtime-database

我有一个代码(有效),使我能够检索特定大陆的所有国家/地区:

 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 实时数据库 此代码的结构:

enter image description here

我创建这个结构是为了测试。我最终使用了这个:

enter image description here

问题是,我的代码不适用于此结构。如何检索具有 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/

相关文章:

java - BeanUtils setProperty 抛出 IllegalArgumentException

java - 一个构造函数 - 多个参数

android - 在 Android 中检测 iBeacon 并捕获细节

java - 移动后组件不再可调整大小

java - 删除指定文件

安卓 : widget size for all screen

Android,如何删除VideoView的控件?

java - 如何从 Firebase Android 查询中的 StartAt 特定位置和 EndAt 特定位置获取值

Firebase Cloud Functions 多部分/表单数据

javascript - 有没有一种简单的方法可以在 web worker 中运行 Firebase?