解决方法是使用 addValueEventListener 替代 addListenerForSingleValueEvent。
addListenerForSingleValueEvent 方法只会触发一次事件,而 addValueEventListener 方法会持续监听数据的变化并触发事件。如果使用 addListenerForSingleValueEvent 方法,那么当数据发生变化时,不会再次触发事件。
以下是一个使用 addValueEventListener 的示例代码:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("your_node_name");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// 处理数据变化的逻辑
// 该方法会在数据发生变化时触发
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
// 处理取消事件的逻辑
}
});
使用 addValueEventListener 方法可以持续监听数据的变化并触发事件,避免了 addListenerForSingleValueEvent 方法只触发一次的问题。