2

我正在尝试从其他页面的流构建器获取 Firestore 数据,它向我显示了以下错误

错误:没有为“QuerySnapshot”类型定义方法“data”。([phonebook_admin]lib\Screens\DetailPage\DetailPage.dart:20 处的 undefined_method)

下面是代码

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class DetailPage extends StatefulWidget {
  final QuerySnapshot contactDetail;
  DetailPage({this.contactDetail});

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

class _DetailPageState extends State<DetailPage> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Card(
        child: ListTile(
          title: Text(widget.contactDetail.data()['name']),
          subtitle: Text(widget.contactDetail.data()['email']),
        ),
      ),
    );
  }
}
4

1 回答 1

0

您应该执行以下操作:

return ListView.builder(
    shrinkWrap: true,
    itemCount: widget.contactDetail.docs.length,
    itemBuilder: (BuildContext context, int index) {
        return ListTile(
            title: Text(widget.contactDetail.docs[index].data()['name']),
            subtitle: Text(widget.contactDetail.docs[index].data()['email']),
        );
    },
);

QuerySnapshot 返回包含文档内容的文档列表,因此您需要使用ListView.builder

于 2020-10-13T16:32:02.723 回答