firebase - 如何在 Flutter 的 gridview 中从 firestore 获取特定项目
问题描述
我正在与Firebase Firestore
inGridview
合作Flutter
。我试图只获取uid
来自用户的项目与Firestore
. 我似乎无法弄清楚如何做到这一点。或者我得到了我想要的结果,但我不想拥有的记录是Gridview
. 这个空白区域是其他记录,与uid
. 或者循环在第一次uid
不匹配时停止。
如果我null
在 else 语句中返回,一旦有一个错误匹配,循环就会停止。有没有办法我只能在 中获取我想要的记录Gridview
,而在它之前没有空格?
解决方案
简短的回答
将您的流更改为此
stream: FirebaseFirestore
.instance
.collection('users')
.where('uid', isEqualTo: _auth.currentUser())
.snapshots(),
然后不再需要比较 uid 的另一个 if 语句
为什么这样有效
where()函数对集合进行预过滤,因此您只获取满足条件的文档,在这种情况下,就是当 uid 匹配时。您唯一的错误是您在检索每个文档后比较 uid。
推荐阅读
- python - 从给定的多行字符串中,计算单词“thought”在不使用内置函数的情况下出现的次数
- docker - 使用 docker API 将文件从主机复制到 docker 容器
- python - Python - 如何从 Google Colab 的 ourworldindata.org 下载 csv 数据集?
- c - 在 C 中使用循环的分叉和管道进程
- sql - 交叉引用列 ORACLE SQL
- javascript - 凸轮有人解释这个声明是做什么的?
- angular - angular renderRows() 不渲染 mat-table
- php - Laravel Octane 会比 Laravel/Lumen 更快吗?
- c# - HTTP 错误 403.14 - 禁止 - 当我运行网站时
- android - Android ConstraintLayout 根据屏幕大小设置高度