代码之家  ›  专栏  ›  技术社区  ›  Zar E Ahmer

基于数组项的Fetch集合给出“FAILED\u PRECONDITION:查询需要索引”[重复]

  •  0
  • Zar E Ahmer  · 技术社区  · 6 年前

    我试着把所有有“数学”标签的问题都拿出来,但它并没有成功,而是转移到了失败的听众身上。

    db.collection("questionCollection")
                    .orderBy("questionID", Query.Direction.DESCENDING)
                    .whereArrayContains("tags","maths")
                    .limit(3)
                    .get()
                    .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                        @Override
                        public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                            if (queryDocumentSnapshots.isEmpty()) {
                                Log.d(TAG, "onSuccess: LIST EMPTY");
                                return;
                            } else {
                                // Convert the whole Query Snapshot to a list
                                // of objects directly! No need to fetch each
                                // document.
                                questionList = queryDocumentSnapshots.toObjects(QuestionBO.class);
    
                                if (questionList != null && questionList.size() > 0)
                                    mAdapter.updateQuestions(questionList);
                            }
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    e.printStackTrace();
                    Toast.makeText(mContext,"Failed",Toast.LENGTH_LONG).show();
                }
            });
    

    enter image description here

    例外情况

    FAILED_PRECONDITION: The query requires an index. You can create it here: https://console.firebase.google.com/project/testingproject-384af/database/firestore/indexes?create_index=EhJxd
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Doug Stevenson    6 年前

    只需单击错误消息中提供给您的链接。它将把您带到控制台,并要求您创建满足您试图执行的查询的索引。