我在特定引用下存储了几个字符串: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
检索数据,然后将检索到的数据分配给各种字符串?
答案 0 :(得分:0)
我认为你是以错误的方式进行查询。 onChildAdded
方法正在检索每个具有特定值的子节点(我猜想是userID2)。如果这是您想要的,那么每次更改时,只需使用onValueEventListener()
检索userId2节点的整个dataSnapshot。
如果您只想检索一次数据,则应使用onSingleValueEventListener()
。 OnChildEvent()
用于检索您希望单独跟踪每个子项的数据列表。例如,如果您将OnChildEventListener
附加到mReference.child(rID)
,则每个userId都会收到一个OnChildAdded
,这非常有用,例如填写RecyclerView
或{{1}能够与Firebase数据一起单独更新每个项目。
如果我没错,你想要的只是获取ListView
引用的更新,在这种情况下,将userId2
附加到该引用,每次有值时你都会收到一个电话被修改,删除或添加。
OnValueEventListener