Firestore - 添加.whereEqualTo数据后不会实时刷新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firestore - 添加.whereEqualTo数据后不会实时刷新相关的知识,希望对你有一定的参考价值。

添加方法后.whereEqualsThis数据不会实时刷新。我需要切换到不同的屏幕然后回来刷新。有谁知道为什么会这样?

这是代码:

        Query query = dailyGoalsRef.whereEqualTo("isNotToDisplay", false).orderBy("date", Query.Direction.ASCENDING);
    FirestoreRecyclerOptions<DailyGoalsModel> firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<DailyGoalsModel>()
            .setQuery(query, DailyGoalsModel.class)
            .build();

    firestoreRecyclerAdapter =
            new FirestoreRecyclerAdapter<DailyGoalsModel, DailyGoalsHolder>(firestoreRecyclerOptions) {
                @Override
                protected void onBindViewHolder(@NonNull DailyGoalsHolder holder, int position, @NonNull DailyGoalsModel model) {
                    String fragmentName = "dailyGoals";
                    holder.setGoalsList(context, userEmail, model, fragmentName);
                }

                @NonNull
                @Override
                public DailyGoalsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.daily_goals_list, parent, false);
                    return new DailyGoalsHolder(view);
                }

                @Override
                public void onDataChanged() {
                    if (progressBar != null) {
                        progressBar.setVisibility(View.GONE);
                    }
                    if (getItemCount() == 0) {
                        recyclerView.setVisibility((View.GONE));
                        emptyView.setVisibility((View.VISIBLE));
                    } else {
                        recyclerView.setVisibility(View.VISIBLE);
                        emptyView.setVisibility(View.GONE);
                    }
                }

                @Override
                public int getItemCount() {
                    return super.getItemCount();
                }
            };
    recyclerView.setAdapter(firestoreRecyclerAdapter);
    return layout;

Firestore:enter image description here

改变价值“isNotToDispaly”

if ((date.getTime()) < (todayDate.getTime() - 2*24*60*60*1000)) {
            rootRef.collection("goalsData").document(userEmail).collection(fragmentName).document(goalsId).update("isNotToDisplay", true);
        }

它位于

public void setGoalsList(final Context context, String userEmail, DailyGoalsModel goalsModel, String fragmentName)
答案

我解决了这个问题。这很不寻常,因为它不是在Firebase平台中添加索引。

以上是关于Firestore - 添加.whereEqualTo数据后不会实时刷新的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Firebase 数据库(Firestore)不添加文档

如何在firestore 9中将具有自定义ID的文档添加到firestore

Cloud Firestore 文档添加给出错误“参数“数据”的值不是有效的 Firestore 文档。不能使用“未定义”作为 Firestore 值”

我试图向 Firestore 添加数据,但“Firestore 组件不存在”。终端给出这个错误信息

如何使用颤振在 Firebase 云 Firestore 中添加多个节点

Firestore - 如何从值映射中添加/减去