收听多个数据库引用

时间:2017-01-30 18:21:37

标签: android firebase firebase-realtime-database

我创建了一个项目,我需要一次监听多个数据库位置。

{
  "A": [data-a],
  "B": [data-b],
  "C": [data-c]
}

每当有任何内容发生变化,在地点ABC添加或删除时,我都希望显示Android中ListView内发生的操作。

对于一个位置,我已经能够通过将以下代码添加到我的项目来实现这一目的。

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("A");
databaseReference.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    //Child got added
    }

    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    //Child got changed
    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {
    //Child got removed
    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    //Child got moved
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    //Some error happened
    }
});

现在回答我的问题。我是否需要为每个位置提供多个侦听器,或者我能以某种方式以更简单的方式获得有关所有更改的通知吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要添加多个引用和子侦听器。 Firebase没有SQL数据库中存在的联合,联接或其他运算符的概念。要检索的数据集合与用于访问它们的引用/侦听器之间存在1:1的关系。您不能使用通配符或其他机制一次访问多个数据集合。