【问题标题】:How to retrieve data child in a child from firebase?如何从firebase中检索孩子中的数据孩子?
【发布时间】:2019-03-28 16:14:23
【问题描述】:

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

这是之前的结构:

之后:

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

     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,2?我认为这不是一个好的设计,如果您需要获取这些项目的位置,您可以从 populatevViewModel() 方法中获取它们。
  • 先生,我想试试其他结构。你能帮助我吗? @NoelOmondi

标签: android database firebase-realtime-database


【解决方案1】:

Expo 和 Training 的 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");

【讨论】:

  • 好的,我将尝试将“1,2”更改为按键。我明白先生。但是我尝试了最底层的代码,它给了我错误
  • 对于图像,我已经做到了,谢谢先生。它有效
  • 你的意思是我需要使用 mDatabase.addValueEventListener 的循环吗?抱歉问太多了。我真的很好奇这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
  • 2023-03-27
  • 2021-11-17
相关资源
最近更新 更多