我有一个Firestore文档“用户”,其数组字段为“语言”和“国家”。每个用户都会使用几种语言,因此对于一个用户来说,是
user1,
languages: english, spanish, italian
country: "UK"
user2,
languages: english
country: "UK"
我的查询如下:
query = db.collection("users");
query = query.whereEqualTo("country", "UK");
query = query.whereArrayContains("languages", "English");
query.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@NonNull QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
if (e != null) {
return;
}
if (queryDocumentSnapshots != null) {
List<DocumentSnapshot> snapshotList = queryDocumentSnapshots.getDocuments();
for (DocumentSnapshot document : snapshotList) {
String country= document.getString("country");
Log.wtf(TAG, country);
}
} else {
Log.d(TAG, "Error getting documents: ");
}
}
});
结果仅返回“ user2”的数据,因为它在数组语言中只有一个字段。 Althoug“ user1”也具有英语作为语言值,因此不会返回该用户的数据。
我在做什么错了?