Java 对FirestoreRecyclerAdapter使用查询时,我没有调用get(),但我需要设置Query.get(Source.SERVER)

Java 对FirestoreRecyclerAdapter使用查询时,我没有调用get(),但我需要设置Query.get(Source.SERVER),java,android,firebase,google-cloud-firestore,firebaseui,Java,Android,Firebase,Google Cloud Firestore,Firebaseui,在我的android应用程序中,我正在使用FirestoreRecyclerAdapter,从中绑定Query和Model。当应用程序离线时,我需要它不显示任何内容。但应用程序显示缓存中的数据,根据 我还尝试在FirestoreRecyclerOptions上设置PersistenceEnabled(false),但没有任何帮助 从中,我发现我需要在Query上使用get(Source.SERVER),但我在Query上没有使用get(),因为我在FirestoreRecyclerOptions

在我的android应用程序中,我正在使用
FirestoreRecyclerAdapter
,从中绑定
Query
Model
。当应用程序离线时,我需要它不显示任何内容。但应用程序显示缓存中的数据,根据

我还尝试在
FirestoreRecyclerOptions
上设置PersistenceEnabled(false),但没有任何帮助

从中,我发现我需要在
Query
上使用
get(Source.SERVER)
,但我在
Query
上没有使用
get()
,因为我在
FirestoreRecyclerOptions
中使用它,这是由
FirestoreRecyclerAdapter
使用的

这是我的代码,基本上与firebaseui第160-178行中的相同

Query query = FirebaseFirestore.getInstance()
                .collection("files")
                .orderBy("timestamp")
                .limit(50);

        FirestoreRecyclerOptions<FileToPrint> options = new FirestoreRecyclerOptions.Builder<FileToPrint>()
                .setQuery(query, FileToPrint.class)
                .build();

        adapter = new FirestoreRecyclerAdapter<FileToPrint, FileToPrintHolder>(options) {
            @Override
            public void onBindViewHolder(FileToPrintHolder holder, int position, FileToPrint model) {
                // Bind the Chat object to the ChatHolder
                holder.bind(model);
            }

            @Override
            public FileToPrintHolder onCreateViewHolder(ViewGroup group, int i) {
                // Create a new instance of the ViewHolder, in this case we are using a custom
                // layout called R.layout.message for each item
                View view = LayoutInflater.from(group.getContext())
                        .inflate(R.layout.file_to_print_item, group, false);

                return new FileToPrintHolder(view);
            }
        };
        mRecyclerView.setAdapter(adapter);
Query Query=FirebaseFirestore.getInstance()
.collection(“文件”)
.orderBy(“时间戳”)
.限额(50);
FirestoreRecyclerOptions选项=新建FirestoreRecyclerOptions.Builder()
.setQuery(查询,FileToPrint.class)
.build();
适配器=新FirestoreRecyclerAdapter(选项){
@凌驾
BindViewHolder上的公共无效(FileTopPrintHolder、int位置、FileTopPrint型号){
//将聊天对象绑定到ChatHolder
绑定(模型);
}
@凌驾
公共文件TopPrintHolder onCreateViewHolder(视图组,int i){
//创建ViewHolder的新实例,在本例中,我们使用自定义
//为每个项目调用R.layout.message的布局
View=LayoutInflater.from(group.getContext())
.充气(R.layout.file\u to\u print\u项目,组,假);
返回新文件TopPrintHolder(视图);
}
};
mRecyclerView.setAdapter(适配器);
当我断开Internet连接时,我希望看到空列表,但我看到的是以下日志:

Firestore:(21.0.0)[OnlineStateTracker]:无法访问云Firestore后端。后端在10秒内没有响应

这通常表示您的设备目前没有正常的Internet连接。客户端将在脱机模式下运行,直到能够成功连接到后端


如果您使用的是
recyclerView.setHasFixedSize(true)

删除它这对我来说是工作…试试看。

你是如何尝试使用
。setPersistenceEnabled(false)
的,但它不起作用?不确定我是否做对了,但我在帖子中的代码前面放了以下代码:FirebaseFirestore db=FirebaseFirestore.getInstance();FirebaseFirestoreSettings设置=新建FirebaseFirestoreSettings.Builder().setPersistenceEnabled(false.build();db.setFirestoreSettings(设置);FirebaseFirestore.getInstance().setFirestoreSettings(设置);是的,但是当你这么做的时候发生了什么?当我断开AVD与互联网的连接时,它仍然会显示列表中的一些项目。当我的代码在firebase server中更改状态时,我还可以选中/取消选中复选框。我应该看到,只有在服务器更改了特定复选框的状态后,复选框才会更改其状态。因此,我所期望的是UI完全依赖于服务器状态,或者不显示任何其他内容。您是否尝试清除缓存,使用
。setPersistenceEnabled(false)
并再次读取数据?这样行吗?