如何从Firebase中检索子项中的子项数据?

时间:2019-03-28 16:14:24

标签: android database firebase-realtime-database

我是Android和Firebase的新手。 我想获得曝光,并通过一个项目学习这两种技术。 这是我的问题。 我在Firebase中更改了数据库的结构,但我不知道如何再次检索数据。

这是之前的结构:

enter image description here

之后:

enter image description here

这是我之前检索数据的代码:

     mDatabase = FirebaseDatabase.getInstance().getReference().child("Events");
     mDatabase.keepSynced(true);

    //OnStart 
     FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, BlogViewHolder>
                (Blog.class, R.layout.blog_row, BlogViewHolder.class, mDatabase) {
            @Override
            protected void populateViewHolder(final BlogViewHolder viewHolder, final Blog model, int position) {
                viewHolder.setTitle(model.getId());
                viewHolder.setTitle(model.getTitle());
                viewHolder.setDate(model.getDate());
                viewHolder.setDesc(model.getDesc());
                viewHolder.setImage(getApplicationContext(), model.getImage());
                final View inflatedView = getLayoutInflater().inflate(R.layout.blog_row, null);
                viewHolder.mView.setOnClickListener(new View.OnClickListener(){
                    @Override
                    public void onClick(View v){
                        Intent intent = new Intent(getApplicationContext(), Join_activity.class);
                        startActivity(intent);
                    }
                });

我已经在这里和其他平台上尝试过代码,但没有得到答案。请帮助我。

1 个答案:

答案 0 :(得分:0)

Expo和培训的1和2家长应该是按键,而不是静态数字。

要显示图像,您应该使用GlidePicasso

检索数据库数据的问题就在这一行

mDatabase = FirebaseDatabase.getInstance().getReference().child("Events");

在执行此操作时,在您的populateViewHolder

viewHolder.setTitle(model.getTitle());

或尝试请求任何数据,它不会在您的引用.child("Events")上,而是应该用静态的内容替换您的引用,或执行for循环以获取所有节点

mDatabase = FirebaseDatabase.getInstance().getReference().child("Events").child("1").child("Expo");