flutter - 如何仅显示当前用户的帖子?
问题描述
我正在尝试在颤振中构建一个应用程序,但我遇到了这个问题,我似乎找不到任何现有的答案。如何仅显示当前用户的帖子?我的帖子集合有一个用户 id 字段,我想将其与当前用户进行比较,并仅显示 userId 和 currentUser 相同的帖子。
return FutureBuilder(
future: FirebaseAuth.instance.currentUser(),
builder: (ctx, futureSnapshot) {
if (futureSnapshot.connectionState == ConnectionState.waiting) {
Center(
child: CircularProgressIndicator(),
);
}
return StreamBuilder(
stream: Firestore.instance.collection('posts').snapshots(),
builder: (context, streamSnapshot) {
if (streamSnapshot.connectionState == ConnectionState.waiting) {
Center(
child: CircularProgressIndicator(),
);
}
final documents = streamSnapshot.data.documents;
return ListView.builder(
itemCount: documents.length,
itemBuilder: (ctx, index) => PostItem(
documents[index]['title'],
documents[index]['imageUrl'],
documents[index]['location']['address'],
));
});
});
解决方案
您目前正在收到所有帖子:
Firestore.instance.collection('posts').snapshots()
如果您只想要当前用户的帖子,那就是:
var uid = (await FirebaseAuth.instance.currentUser()).uid;
Firestore.instance.collection('posts').where('uid', isEqualTo: uid).snapshots()
第一行确定当前用户的 UID,然后第二行使用它来仅请求其uid
字段与值匹配的文档。
推荐阅读
- extjs - 如何在父网格数据的基础上,将网格插入到网格中?
- python - 如何使用 Keras 中的 Conv2D 在 5D 张量的最后三个维度上应用卷积?
- python-3.x - TypeError:在进行网页抓取时
- windows - Pygame的窗口打开而不是立即关闭,为什么?
- java - tycho surefire 的附加捆绑包
- android - Kotlin Jacoco 覆盖未显示 Android 中的静态方法(伴侣)
- python - 方法中的参数过多错误,只有一个必需参数
- javascript - 进行开玩笑测试时脚本(从脚本标签调用)不可用
- c - CHIP-8 模拟器无法按预期呈现图形
- python-3.x - 如何在keras中使用evaluate_generator?