基于数组项获取集合给出“FAILED_PRECONDITION:查询需要索引”

我试图获取所有带有“maths”标签的问题,但不是成功,而是转移到failedListener。

db.collection("questionCollection") .orderBy("questionID", Query.Direction.DESCENDING) .whereArrayContains("tags","maths") .limit(3) .get() .addOnSuccessListener(new OnSuccessListener() { @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(); } }); 

在此处输入图像描述

例外

 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 

只需单击该错误消息中提供给您的链接即可。 它将带您进入控制台并要求您创建满足您尝试执行的查询的索引。