解决方法是使用 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
方法只触发一次的问题。