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



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

在根引用上添加侦听器是一个非常糟糕的主意,因为每次数据库中发生变化时,都需要下载整个JSON树,这会浪费带宽和资源。要解决此问题,您可以等待来自数据库的数据以创建另一个查询,也可以使用嵌套侦听器。嵌套的侦听器有点复杂,但流本身应该很容易遵循。因此,就Firebase而言,嵌套侦听器并没有错。

实现这一点的完美方法是什么?

在这种情况下,"完美的方式"是你能适应的情况。

您可以尝试这样的方法。

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个参考

最新更新