首页 > 解决方案 > 用户离线时如何在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);
        }

    }

标签: javaandroidfirebasefirebase-realtime-database

解决方案


对于 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"

推荐阅读