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

时间:2019-09-11 07:50:37

标签: java android firebase google-cloud-firestore firebaseui

在我的Android应用中,我使用的是firebase-UI中的FirestoreRecyclerAdapter,该绑定了QueryModel。当应用离线时,我不需要显示任何内容。但是应用程序显示了根据docs

从缓存中获取的数据DEFAULT

我还尝试了.setPersistenceEnabled(false)上的FirestoreRecyclerOptions,但没有帮助。

this中,我发现需要在get(Source.SERVER)上使用Query,但是我没有在get()上使用query FirestoreRecyclerOptions中使用的FirestoreRecyclerAdapter

这是我的代码,基本上与firebaseui的example app中第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);

当我断开Internet连接时,我希望看到一个空列表,但是却看到以下日志:

  

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

     

这通常表明您的设备当前没有正常的Internet连接。客户端将以脱机模式运行,直到能够成功连接到后端为止。

not in sync screenshot

1 个答案:

答案 0 :(得分:0)

如果您使用的是recyclerView.setHasFixedSize(true); 删除它为我工作 ...只需尝试一下。