dart 类“_JsonDocumentSnapshot”没有示例getter“docs”,接收器:“_JsonDocumentSnapshot”的示例已尝试调用:docs

hc2pp10m  于 2024-01-03  发布在  其他
关注(0)|答案(2)|浏览(115)
@override
  Widget build(BuildContext context) {   

  File? myImage;

  User? user = FirebaseAuth.instance.currentUser;

     
    return Scaffold(

      appBar: AppBar( 
        title: const Text('Settings Page'),
        centerTitle: true,
        backgroundColor: Colors.blueGrey,),

       body:  Center(
         
         child: FutureBuilder(
           future: FirebaseFirestore.instance.collection('users').doc(user!.uid).get(),
           builder: (context,AsyncSnapshot snapshot) {
             if(snapshot.hasData) {
               var emmi = snapshot.data;
               return ListView.builder(
                 itemCount: emmi.docs.length,
                 itemBuilder: (context,index) {
                   return Column(

                       children: [
                          ListTile(
                           leading: ClipRRect(
                              borderRadius: BorderRadius.circular(80),
                              child: CachedNetworkImage(
                                imageUrl:emmi['image'],
                                height:120,
                              ),

                              
                            ),
                            
                            
                          ),
                          SizedBox(height: 15,),

                          ElevatedButton(onPressed: selectFile, child: const Text("select file")),
                          ElevatedButton(onPressed: uploadFile, child: const Text("upload file")),
                        ],

                   );
                 });
             }
             return Center(
            child: Text("error"),
          );
           },

         ),
       
       ),

       

        

    );
    
  }

  
}

字符串
我正在做一个设置页面,我试图从firestore拉当前用户的形象,然后更新用户的形象。
我一直在寻找问题的解决方案,但不幸的是,我尝试了每一个解决方案,我发现了类似的错误,但错误没有消失。

gdrx4gfi

gdrx4gfi1#

我想出了如何拉用户的形象,如果有人想在这里做同样的事情,我的解决方案

Widget build(BuildContext context) {   

final user = FirebaseAuth.instance.currentUser;

 
return Scaffold(

  appBar: AppBar( 
    title: const Text('Settings Page'),
    centerTitle: true,
    backgroundColor: Colors.blueGrey,),

   body:  StreamBuilder(
     stream: FirebaseFirestore.instance.collection('users').where('uid', isEqualTo: user!.uid).snapshots(),
     builder: (context,AsyncSnapshot snapshot) {
       if(snapshot.hasData) {
         if(snapshot.data.docs.length > 0) {
           var snap = snapshot.data;
           return ListView.builder(
             itemCount: snap.docs.length,
             itemBuilder: (context,index) {
               var snaps = snapshot.data.docs[index];
                return ListTile(
                  leading: ClipRRect(
                      borderRadius: BorderRadius.circular(150),
                      child: CachedNetworkImage(
                        imageUrl:snaps['image'],
                        placeholder: (conteext,url)=>CircularProgressIndicator(),
                        errorWidget: (context,url,error)=>Icon(Icons.error,),
                        height: 150,
                      ),
                    ),

                );
             });
         }
       } return Center(child: CircularProgressIndicator(),);
     },
   ),

   

    

);

字符串
}

r55awzrz

r55awzrz2#

对于Firebase Firestore,使用此选项从单个文档获取数据

FutureBuilder<DocumentSnapshot>(
          future: FirebaseFirestore.instance.collection('users').doc('user_id').get(),
          builder:
              (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
            if (snapshot.hasError) {
              return Text("Something went wrong");
            }
            if (snapshot.hasData && !snapshot.data!.exists) {
              return Text("Document does not exist");
            }
            if (snapshot.connectionState == ConnectionState.done) {
              Map<String, dynamic> data = snapshot.data!.data() as Map<String, dynamic>;
              return Text("Full Name: ${data['name']}}");
            }
            return Text("loading");
          },
        )

字符串

相关问题