如何从Fire DB读取和存储ArrayList中的完整对象

时间:2019-05-31 06:02:30

标签: android firebase firebase-realtime-database

我目前正在使用Android Studio开发应用程序。

现在,我想使用Fire DB,以便在启动应用程序时从Arraylist中的数据库中接收信息。在这种情况下,应将数据库中的节点及其属性保存为对象。

  1. 数据库的结构仍然很灵活。我计划将编号设置为1,并在索引下标记一个对象的所有属性。 如果还有其他意义,仍然可以更改

  2. 如何读取这些并将它们存储在每个索引的对象中,然后将其放入数组列表中?

我已经找到了几个在线示例,但没有一个起作用。

因此,对于我可以测试并可能讨论的输入内容,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

请添加一些示例代码以了解我们的工作。


  

您需要执行以下操作


1)包含setter和getter方法的模型类(与您存储在firebase中的名称相同)

如果您在一个对象中有多个节点,

2)RecyclerView和RecyclerAdapter类

3)DatabaseRefrence访问您的数据。

从Firebase检索数据的示例代码

   final List<Certificates> list=new ArrayList<>();

    DatabaseReference reference= FirebaseDatabase.getInstance().getReference().child("Object");
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot)
        {
            list.clear();
            for (DataSnapshot snapshot:dataSnapshot.getChildren())
            {
                Model model=snapshot.getValue(Model.class);
                list.add(model);
            }

            RecyclerAdapter adapter=new RecyclerAdapter(list,Activity.this);
            recyclerView.setLayoutManager(new LinearLayoutManager(CertificatesActivity.this));
            recyclerView.setAdapter(adapter);
            recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(),DividerItemDecoration.VERTICAL));
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError)
        {
            //handle error here
        }
    });

如果您需要帮助以了解情况,请告诉我。