如何在 Android Studio 中使用来自 Firebase 数据库的查询在不使用唯一 ID 的情况下获取子节点?

开尔文托弗

我已经RecyclerAdater在 Android Studio 中设置了一个,我需要将我的数据库指向节点 Courses 以获取所有子节点(CourseDate,CourseId,...),这些子节点位于节点的 2 层深度,而Courses无需使用Firebase 中的查询来知道它们的唯一 ID . 那么我该怎么做呢?

数据库图片

Query query= (Query) CourseDatabaseRefer.addChildEventListener( new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            dataSnapshot.getChildren();
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            dataSnapshot.getChildren();
        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    } );

这就是我想要做的,以便之后我可以将查询对象传递给我FirebaseRecyclerOptions,如下所示;

FirebaseRecyclerOptions<AllCourses> RecyclerOption=new FirebaseRecyclerOptions.Builder<AllCourses>()
            .setQuery( query,AllCourses.class ).build();

但它似乎没有解决......任何帮助将不胜感激。

亚历克斯·马莫

在节点课程中有 2 种深度

为了解决这个问题,你需要遍历Courses节点两次,为此,我建议你使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference coursesRef = rootRef.child("Courses");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        List<AllCourses> list = new ArrayList<>();
        for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot ds : dSnapshot.getChildren()) {
                AllCourses allCourses = ds.getValue(AllCourses.class);
                list.add(allCourses);
            }
        }

        //Do what you need to do with the list
        Log.d("TAG", list.size());
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
    }
};
coursesRef.addListenerForSingleValueEvent(valueEventListener);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档