java - 如何在不重新启动 Activity 的情况下更新 Firebase 数据库中的数据
问题描述
我可以从 Firebird 数据库获取数据,但只有在我重新启动活动时才会更新它们如何在不重新启动活动的情况下进行操作。
实现检索数据的代码片段
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);
text.setText(String.valueOf(coinsAmount));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
解决方案
改变
uidRef.addListenerForSingleValueEvent(valueEventListener);
到:
uidRef.addValueEventListener(valueEventListener);
这样,每次数据库中的值更改时都会调用您的侦听器,而不仅仅是一次。
阅读有关valueEvent 和 singleValueEvent 之间区别的更多信息。
推荐阅读
- android - Android 可扩展列表视图,如 Gmail 线程
- php - PHP 7.2 Amazon Linux 2 上的 DOM 扩展
- javascript - setState 有条件地做出反应
- java - jsp中用于分页布告栏的sql
- java - Spring Boot RestTemplate 交换 400 错误请求
- javascript - 用于 Internet Explorer 的 Selenium scrollIntoView()?
- dialogflow-es - 谷歌操作控制台中未显示意图
- c# - 从 .Net 核心服务连接到 AzureNotificationHub 时如何设置代理
- javascript - Java 方法不使用 Freemarker 从 Javascript 执行
- java - 当 bean 有拦截器或装饰器时,CDI 中的代理规则是什么?