如何使用' ChildEventListener'从最高/最后一级节点检索值来自Firebase?

时间:2017-01-25 03:02:49

标签: android android-studio firebase firebase-realtime-database key-value

我在特定引用下存储了几个字符串:mReference.child(rID).child(userID2)我想使用childEventListener检索它,因为我正在执行某些任务,当这些字符串被删除时,只有{{1}才能执行} onChildRemoved

以下是我的尝试:

ChildEventListener

问题是,由于mReference.child(rID).child(userID2).addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { Log.d("dataHEre", dataSnapshot.getValue().toString()); } } 正在退出,我无法使用keys检索数据:

dataHEre

D/dataHEre: 28.8419556 D/dataHEre: 78.779063 D/dataHEre: 3 D/dataHEre: Railway Colony D/dataHEre: Sleep D/dataHEre: 12:36 AM D/dataHEre: Superman

所以,我想知道如何使用values并使用keys检索数据,然后将检索到的数据分配给各种字符串?

1 个答案:

答案 0 :(得分:0)

我认为你是以错误的方式进行查询。 onChildAdded方法正在检索每个具有特定值的子节点(我猜想是userID2)。如果这是您想要的,那么每次更改时,只需使用onValueEventListener()检索userId2节点的整个dataSnapshot。

如果您只想检索一次数据,则应使用onSingleValueEventListener()OnChildEvent()用于检索您希望单独跟踪每个子项的数据列表。例如,如果您将OnChildEventListener附加到mReference.child(rID),则每个userId都会收到一个OnChildAdded,这非常有用,例如填写RecyclerView或{{1}能够与Firebase数据一起单独更新每个项目。

如果我没错,你想要的只是获取ListView引用的更新,在这种情况下,将userId2附加到该引用,每次有值时你都会收到一个电话被修改,删除或添加。

OnValueEventListener