我在我的 Firestore DB 文档中添加了一个地图作为一个字段,里面有一个子字段,我的 RecyclerView 遇到了问题

I added a map as a field in my Firestore DB document with a sub field inside, and I am facing issues to my RecyclerView

当我在查询中包含添加的地图字段时,我的 RecyclerView 在显示我的应用候选者时遇到问题。我也为此查询创建了一个索引,但我的 RecyclerView 仍然没有任何结果。

这是更新后的查询代码。如果编码有问题,请通知我。

FirebaseUser user = mAuth.getCurrentUser();
    String voterID = user.getUid();
    Query query = notebookRef.whereEqualTo("registrationStatus", "Accepted").whereEqualTo( voterID, false).orderBy("candidateFullName", Query.Direction.ASCENDING);

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

    adapter = new VoterCandidateAdapter(options);

    recyclerView = findViewById(R.id.candidateList);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(adapter);
    recyclerView.setItemAnimator(null);

这是 Firestore DB 的更新截图:

这是索引的更新截图:

以下查询:

Query query = notebookRef
        .whereEqualTo("registrationStatus", "Accepted")
        .whereEqualTo(voterID, false)
        .orderBy("candidateFullName", Query.Direction.ASCENDING);

需要一个index,否则,它将工作。如果您使用的是 Android Studio,您会在 logcat 中找到如下所示的错误消息:

FAILED_PRECONDITION: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/...

可以直接在 Firebase Console 中或通过单击 link 创建所需的查询。如果点击不起作用,只需将 URL 复制并粘贴到网络浏览器中,系统就会自动为您创建索引。

如果选择控制台,记得设置:

Collection: Candidates Fields: registrationStatus ascending and voterID: ascending