类型“_JsonQuerySnapshot”不是类型转换中“Map <String,dynamic>”类型的子类型”

Cha*_*es 7 dart firebase flutter google-cloud-firestore

我在显示 Firebase 数据时遇到问题。这是我在 FutureBuilder 中使用的代码。

这是我得到的错误

"The following _CastError was thrown building FutureBuilder<QuerySnapshot<Object?>>(dirty, state: _FutureBuilderState<QuerySnapshot<Object?>>#c8a1c):
type '_JsonQuerySnapshot' is not a subtype of type 'Map<String, dynamic>' in type cast"
Run Code Online (Sandbox Code Playgroud)

代码

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:errandkaba_app/widgets/custom_action_bar.dart';
import 'package:flutter/material.dart';

class ServicePage extends StatefulWidget {
  final String? serviceId;
  const ServicePage({Key? key, this.serviceId}) : super(key: key);

  @override
  _ServicePageState createState() => _ServicePageState();
}

class _ServicePageState extends State<ServicePage> {
  final CollectionReference _servicesRef =
  FirebaseFirestore.instance.collection("cleaning");



  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          FutureBuilder (
            future: _servicesRef.get(),
            builder: (context, snapshot){
              //if has error
              if (snapshot.hasError) {
                return Scaffold(
                  body: Center(
                    child: Text("Error ${snapshot.error}"),
                  ),
                );
              }

              if(snapshot.connectionState == ConnectionState.done){
                Map<String, dynamic> documentData = snapshot.data as Map<String, dynamic>;

                return ListView(
                  children: [
                    Image.network(
                        "${documentData['images'][0]}"
                    ),
                  ],
                );

              }
Run Code Online (Sandbox Code Playgroud)

小智 7

尝试snapshot.datasnapshot.data!.data()