我知道如何像这样查询简单的集合/ doc:
const querySnapshot = await
this.authenticationProvider.firestoreDb.collection("members").where("userId",
"==", this.authenticationProvider.user.uid).get();
但是我可以使用firestore
上的条件从内部数组中获取数据吗?
您可以看到我需要检查projects/memberList
数组的位置,之后需要搜索email
。我能这样做吗?
答案 0 :(得分:2)
你不能用数组做到这一点。您需要将数据结构化为对象,其中每个键都是userId
。 Firestore将索引对象键,允许您对它们运行查询。您的数据结构可能如下所示:
然后你可以运行这样的查询:
const userId = this.authenticationProvider.user.uid
ref.collection('members').where(`memberList.${userId}`, '==', true)
您甚至可以在每个userId键(例如另一个对象)下嵌入其他数据,然后获取该用户所属的所有文档,如下所示:
ref.orderBy(`memberList.${userId}`)