在Android中同时从多个Firebase数据库引用中检索数据

时间:2018-11-04 16:26:31

标签: java android firebase firebase-realtime-database

我有几个数据库引用。从这些数据中,我正在获取数据,然后将其保存在列表中,例如:List<Model>。我正在使用addValueEventListener()来检索数据。我可以同时获取所有数据,还是必须等到单个引用完成?完美的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    ref.addValueEventListener(new ValueEventListener()
    {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot)
        {
            //Node 1: This let's you get data from the first node
            dataSnapshot.child("node1").getValue();

            //Node 2: This let's you get data from the second node
            dataSnapshot.child("node2").getValue();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

这样,您仅使用1个参考

答案 1 :(得分:1)

在根引用上添加侦听器是一个非常糟糕的主意,因为每次数据库中发生某些更改时,您都需要下载整个JSON树,这会浪费带宽和资源。要解决此问题,您可以 wait 来获取来自数据库的数据以创建另一个查询,也可以使用 nested listeners 。嵌套的侦听器有些复杂,但是流本身应该很容易遵循。因此,在使用Firebase的情况下,嵌套侦听器没有任何问题。

  

执行此操作的最佳方法是什么?

在这种情况下,“完美的方式”就是您习惯的情况。