如何在 Flutter 的 gridview 中从 firestore 获取特定项目
How do I get specific items from firestore in a gridview in Flutter
我在 Flutter
的 Gridview
中与 Firebase Firestore
一起工作。我试图只获取用户的 uid
与 Firestore
中的记录匹配的项目。我似乎不知道该怎么做。或者我得到了我想要的结果,但是我不想拥有的记录在 Gridview
中是空的 space。这个空 space 是其他记录,与 uid
不匹配。或者循环在 uid
第一次不匹配时停止。
如果我在 else 语句中 return null
,一旦出现一个错误匹配,循环就会停止。
有没有办法只在 Gridview
中获取我想要的记录,而前面没有空的 space?
简答
将您的流更改为此
stream: FirebaseFirestore
.instance
.collection('users')
.where('uid', isEqualTo: _auth.currentUser())
.snapshots(),
然后你的其他比较 uid 的 if 语句就不再需要了
为什么有效
where()函数pre-filters集合,所以你只获取满足条件的文档,在本例中,就是uid匹配的时候。您唯一的错误是您在检索到每个文档后才比较 uid。
我在 Flutter
的 Gridview
中与 Firebase Firestore
一起工作。我试图只获取用户的 uid
与 Firestore
中的记录匹配的项目。我似乎不知道该怎么做。或者我得到了我想要的结果,但是我不想拥有的记录在 Gridview
中是空的 space。这个空 space 是其他记录,与 uid
不匹配。或者循环在 uid
第一次不匹配时停止。
如果我在 else 语句中 return null
,一旦出现一个错误匹配,循环就会停止。
有没有办法只在 Gridview
中获取我想要的记录,而前面没有空的 space?
简答
将您的流更改为此
stream: FirebaseFirestore
.instance
.collection('users')
.where('uid', isEqualTo: _auth.currentUser())
.snapshots(),
然后你的其他比较 uid 的 if 语句就不再需要了
为什么有效
where()函数pre-filters集合,所以你只获取满足条件的文档,在本例中,就是uid匹配的时候。您唯一的错误是您在检索到每个文档后才比较 uid。