如何在 Flutter 的 gridview 中从 firestore 获取特定项目

How do I get specific items from firestore in a gridview in Flutter

我在 FlutterGridview 中与 Firebase Firestore 一起工作。我试图只获取用户的 uidFirestore 中的记录匹配的项目。我似乎不知道该怎么做。或者我得到了我想要的结果,但是我不想拥有的记录在 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。