繁体   English   中英

为什么我不能在 flutter 的 streambuilder 中使用方法 data()

[英]Why can't i use the method data() in my streambuilder in flutter

为什么我不能使用.data()方法?

StreamBuilder(
          stream:
              usersDb.doc(widget.allUsersFromDb.docs[index]["uid"]).snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              return Center(
                  child: CircularProgressIndicator(
                backgroundColor: Colors.deepPurple,
              ));
            }
            // List? invitedByArray = snapshot.data!.data() not working
            return Text("Invite");
          },
        ),

好吧,如果你不指定StreamBuilder类型,那么默认情况下它将是<AsyncSnapshot>解决方案是将StreamBuilder作为<DocumentSnapshot>

 StreamBuilder<DocumentSnapshot>(
            stream: usersDb.doc(_auth.currentUser!.uid).snapshots(),
            builder: (context, currentUserDocSnapshot) {
              if (!currentUserDocSnapshot.hasData) {
                return Center(
                    child: CircularProgressIndicator(
                  backgroundColor: Colors.deepPurple,
                ));
              }
              return Text(userSelectedSnapshot.data!["username"]);
            },
          );

然后您可以访问.data方法并访问您的文档值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM