java - 用户离线时如何在recyclerview中显示尚未同步的firebase消息?
问题描述
我正在使用firebase实时数据库开发聊天应用程序,我面临的问题是当用户离线并且他们发送消息时,对于大于4.2.2和4.2.2及以下版本的android版本,它会自动出现在recyclerview中它不显示离线消息,我想在这些较低版本中做同样的事情,如何在 recyclerview 中显示离线消息(不同步)?这是 fetchMessages 方法:
private void fetchMessages() {
if(mChildEventListener == null) {
mChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
if (snapshot.exists()) {
Messages messages = snapshot.getValue(Messages.class);
messagesList.add(messages);
adapter.notifyDataSetChanged();
mRecyclerView.smoothScrollToPosition(messagesList.size()-1);
}
}
@Override
public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot snapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
};
messagesRef.child(pair).addChildEventListener(mChildEventListener);
}
}
解决方案
对于 Display msg offline 在您的应用程序类中使用下面的代码,如下所示
public class APP NAME extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
}
并将您的清单更改为
<application
android:name=".APP NAME"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
推荐阅读
- node.js - .hbs 文件中的以下代码相当于什么
- c - 从文件中读取值并将其存储在二维矩阵中
- angularjs - 如何根据屏幕尺寸在 D3 js 中创建动态 y 比例值?
- php - 如何让 PHP CodeIgniter 将“index.php”重新插入 url
- java - HttpGet 请求 Binance 使用 java 交换错误
- javascript - 单击具有数据属性的按钮
- python - 在 Matplotlib 中指定密度图的颜色范围
- javascript - Highcharts:我可以动画更改条形图上的条形顺序吗?
- python - 用 pandas 查找树中所有叶子节点的祖先
- python - Matplotlib imshow 显示所有像素