我已经编写了这段代码来获取数据。但是我想在不重新启动 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 databaseError) {
}
});
看,我使用了 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/