为什么我不能在 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 方法并访问您的文档值