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

Android 如何使用'从最高/最后一级节点检索值;ChildEventListener';来自Firebase?,android,android-studio,firebase,firebase-realtime-database,key-value,Android,Android Studio,Firebase,Firebase Realtime Database,Key Value,我在特定引用下存储了几个字符串:mReference.child(rID).child(userID2),我想使用childEventListener检索这些字符串,因为当这些字符串被删除时,我也在执行一些任务,而这只能通过childEventListener的onChildRemoved实现 以下是我尝试过的: mReference.child(rID).child(userID2).addChildEventListener(new ChildEventListener() {

我在特定引用下存储了几个字符串:
mReference.child(rID).child(userID2)
,我想使用
childEventListener
检索这些字符串,因为当这些字符串被删除时,我也在执行一些任务,而这只能通过
childEventListener
onChildRemoved
实现

以下是我尝试过的:

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

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
哪些是


因此,我想知道如何使用
键和
ChildEventListener
在这里检索数据,然后将检索到的数据分配给各种字符串?

我认为您的查询方式不对
onChildAdded
方法将检索特定值(我想是userID2)的每个子级。如果这是您想要的,那么只需使用
onValueEventListener()
在每次更改时检索userId2节点的整个dataSnapshot

如果只想检索一次数据,应使用
onSingleValueEventListener()
。而
OnChildEvent()
用于检索要单独跟踪每个子级的数据列表。例如,如果您将
OnChildEventListener
附加到
mReference.child(rID)
上,您将为每个用户ID获得
onchildaded
,这是非常有用的,例如填充
recyclererview
ListView
,以便能够与Firebase数据一起单独更新每个项目

如果我没记错的话,您想要的只是更新您的
userId2
引用,在这种情况下,在该引用上附加一个
OnValueEventListener
,您将在每次修改、删除或添加值时得到一个调用

 firebaseDatabaseRef.addValueEventListener(new ValueEventListener() {
     @Override public void onDataChange(DataSnapshot dataSnapshot) {
        customPOJO customPOJO = dataSnapshot.getValue(YourCustomPOJO.class);
        customPOJO.getName();
        customPOJO.getEmail();
        customPOJO.getfavoriteFood();
        //and so on....

     }

     @Override public void onCancelled(DatabaseError databaseError) {

     }
  });

我明白你的意思。。我已经试过了,但正如我在问题
中提到的,我想使用childEventListener进行检索,因为当这些字符串被删除时,我也在执行一些任务,而这仅在onChildRemoved
中是可能的。这就是问题所在:/我的意思是,如果在删除和字符串时使用
ValueEventListener
,您将收到带有新项的
onDataChange
数据,然后您可以执行
myNewItem.getMyDesiredString()
,如果删除了
字符串,该调用将返回null,然后你就可以完成你想要的任务了。