我编写了这段代码来获取数据。但我想在数据库中实时更改数据时获取更新,而无需重新启动 Activity 。
我想动态显示数据:
FirebaseDB.batch.child(batch).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//Update recyclerview here
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
最佳答案
如果你需要实时获取数据,你应该使用实时监听器。要解决此问题,请将代码更改为:
FirebaseDB.batch.child(batch).addValueValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//Update recyclerview here
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.d("TAG", error.getMessage()); //Never ignore potential errors!
}
});
看,我已经使用了 Query 的 addValueEventListener() :
Add a listener for changes in the data at this location.
而不是 addListenerForSingleValueEvent()其中:
Add a listener for a single change in the data at this location.
关于java - 当 Firebase 实时数据库上的数据发生变化时获取实时数据变化更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60097695/