首页 > 解决方案 > 如何在 Flutter 的 gridview 中从 firestore 获取特定项目

问题描述

我正在与Firebase FirestoreinGridview合作Flutter。我试图只获取uid来自用户的项目与Firestore. 我似乎无法弄清楚如何做到这一点。或者我得到了我想要的结果,但我不想拥有的记录是Gridview. 这个空白区域是其他记录,与uid. 或者循环在第一次uid不匹配时停止。

我目前拥有的代码,给出了预期的结果,但有空白

如果我null在 else 语句中返回,一旦有一个错误匹配,循环就会停止。有没有办法我只能在 中获取我想要的记录Gridview,而在它之前没有空格?

标签: firebasefluttergridviewgoogle-cloud-firestore

解决方案


简短的回答

将您的流更改为此

stream: FirebaseFirestore
    .instance
    .collection('users')
    .where('uid', isEqualTo: _auth.currentUser())
    .snapshots(),

然后不再需要比较 uid 的另一个 if 语句

为什么这样有效

where()函数对集合进行预过滤,因此您只获取满足条件的文档,在这种情况下,就是当 uid 匹配时。您唯一的错误是您在检索每个文档后比较 uid。


推荐阅读