首页 > 解决方案 > 我如何复合 postUid 和 Userid

问题描述

我创建了一个包含用户帖子的屏幕。主要问题是,当前用户总是看到所有帖子,但当前用户总是在卡上看到自己的名字。

例如,应用程序有来自 3 个不同用户的 3 个帖子,但是当我登录应用程序时,我在卡上看到 JUST MY NAME,但只有 1 个帖子是我的,其他不是我的。

我在底部添加了一些照片和代码:

class HomePageWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) => StreamBuilder(
      stream: FirebaseFirestore.instance
          .collectionGroup('Posts').snapshots(),
      builder: (context, snapshotMsg) {
        if (!snapshotMsg.hasData) {
          return Center(child: CircularProgressIndicator());
        } else {
          return ListView.builder(
            itemCount: snapshotMsg.data.documents.length,
            itemBuilder: (context, index) {
              if (!snapshotMsg.hasData) {
                return Center(child: CircularProgressIndicator());
              } else {
                final dataMsg = snapshotMsg.data.documents[index];
                return FutureBuilder(
                  future: FirebaseFirestore.instance
                      .collection('Users').doc(FirebaseAuth.instance.currentUser.uid).get(),
                  builder: (context, snapshotUser) {
                    if (!snapshotMsg.hasData) {
                      return Center(child: CircularProgressIndicator());
                    } else {
                      final dataUser = snapshotUser.data;
                      return Card(...)

在这里,如果我想显示用户名等。我也使用了这段代码:

Text(dataUser['username']),

问题照片: 在此处输入图像描述 在此处输入图像描述

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


我用这段代码解决了这个问题:

FirebaseFirestore.instance.collection('Users').doc(dataMsg.reference.parent.parent.id).get(),

而已。谢谢。


推荐阅读