当前位置: 首页 > 知识库问答 >
问题:

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

金嘉言
2023-03-14

当我在查询中包括添加的地图字段时,我在显示应用程序的候选时面临着我的RecycerView的问题。我还为该查询创建了索引,但仍然没有从我的RecycerView中得到任何内容。

这是查询代码。如果编码有问题,请务必通知我。

FirebaseUser user = mAuth.getCurrentUser();
    String voterID = user.getEmail();
    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);

共有1个答案

冯福
2023-03-14

以下查询:

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

需要索引,否则将不起作用。如果您正在使用Android Studio,您将在logcat中发现一条错误消息,如下所示:

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

所需的查询可以直接在Firebase控制台中创建,也可以通过单击该链接创建。如果单击不起作用,只需将URL复制并粘贴到web浏览器中,就会自动为您创建索引。

集合:候选人字段:registrationStatus(升序)和voterid(升序)

 类似资料: