我有几个数据库引用。从这些数据中,我正在获取数据,然后将其保存在列表中,例如:List<Model>
。我正在使用addValueEventListener()
来检索数据。我可以同时获取所有数据,还是必须等到单个引用完成?完美的方法是什么?
答案 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的情况下,嵌套侦听器没有任何问题。
执行此操作的最佳方法是什么?
在这种情况下,“完美的方式”就是您习惯的情况。