java - 如何识别随机ID并将其称为 child ?

标签 java android firebase firebase-realtime-database

如何识别随机ID并将其称为 child ?我需要在摘录中调用这个 id:

favoritosRef = firebaseRef.child("favoritos").child( idUser )

enter image description here

favoritosRef = firebaseRef.child("favoritos").child( idUsuario );
    valueEventListenerFavoritos = favoritosRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            perfil.clear();
            for (DataSnapshot dados : dataSnapshot.getChildren()) {
                Perfil perfil2 = dados.getValue(Perfil.class);
                perfil.add(perfil2);
            }
            adapterPerfil.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    });
}

最佳答案

您没有得到任何东西,因为您只使用了一次 getChildren()。为了解决这个问题,你需要像这样循环两次:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("favoritos").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<Perfil> list = new ArrayList<>();
        for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot ds : dSnapshot.getChildren()) {
                Perfil perfil = ds.getValue(Perfil.class);
                Log.d("TAG", perfil.getTitulo());
            }
        }

        //Set the list to adapter
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

关于java - 如何识别随机ID并将其称为 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51486638/

相关文章:

java - AndEngine 在到达目的地时停止动画 Sprite

java - 处理多个休息调用的线程

java - 空对象引用上的“java.lang.String java.lang.Object.toString()”

java - 如何验证 Elasticsearch 中特定索引的快照是否正在进行?

java - 使用 AspectJ spring-aop 改变返回值的类型

java - 如何获取 GMT + 2 的时间并将其放入微调器中的 24 小时内项目中(仅限小时和分钟)?

android - void android.support.v7.widget.SearchView.setOnQueryTextListener(android.support.v7.widget.SearchView$OnQueryTextListener)

java - 应将什么上下文名称传递给 Glide 方法?

javascript - 访问引号内的函数

ios - Firebase 观察 .childAdded 类型每次都会检索我的所有信息。请协助