我正在尝试过滤并获取写入Firestore的文档。所以我的内容我还有一个HashMap
DOC1
//.....
"votes": [
{
"userID1": true,
"userID2": true,
}],
//.....
DOC2
//.....
"votes": [
{
"userID1": true,
"userID2": true,
}],
//......
Please check here my Firestore snapshot for better understanding
现在我需要过滤所有userID1(附加图像中的Highleteed),其中等于true。
我尝试了以下代码似乎无法正常工作
// Construct query basic query
mQuery = mFirestore.collection(fsCollection)
.orderBy("timestamp", Query.Direction.DESCENDING)
.whereEqualTo(getUid(), true)
.limit(LIMIT);
答案 0 :(得分:0)
您需要更改以下代码行:
mQuery = mFirestore.collection(fsCollection)
.orderBy("timestamp", Query.Direction.DESCENDING)
.whereEqualTo(getUid(), true)
.limit(LIMIT);
与
mQuery = mFirestore.collection(fsCollection)
.orderBy("timestamp", Query.Direction.DESCENDING)
.whereEqualTo("votes." + getUid(), true) //Use the name of the HashMap
.limit(LIMIT);
由于您在同一查询中使用orderBy
和whereEqualTo
方法,因此您需要创建索引。在您启动应用的那一刻,您将在logcat中看到url
。单击该URL以创建所需的索引。