【发布时间】:2021-09-29 13:25:40
【问题描述】:
我在尝试从子集合中检索数据时遇到错误。 firestore db如下-> users;文档 uid;消息;批准的贷款;贷款获批。
我仔细检查了我输入的文档和集合是否正确,所以我错过了什么?
任何建议将不胜感激。
谢谢
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class MessagesScreen extends StatefulWidget {
@override
MessagesScreenState createState() => MessagesScreenState();
}
FirebaseAuth _auth = FirebaseAuth.instance;
final uid = _auth.currentUser!.uid;
var boldFont = TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600);
class MessagesScreenState extends State<MessagesScreen> {
final db = FirebaseFirestore.instance
.collection('users')
.doc(uid)
.collection('Messages')
.snapshots();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
titleSpacing: 30,
automaticallyImplyLeading: false,
backgroundColor: Color.fromRGBO(1, 67, 55, 1),
toolbarHeight: 100,
title: new Text(
'Messages',
style: TextStyle(
color: Color.fromRGBO(255, 255, 255, 1),
fontFamily: 'Poppins',
fontSize: 25,
letterSpacing: 1.2,
fontWeight: FontWeight.bold,
height: 1),
),
),
body: StreamBuilder<QuerySnapshot>(
stream: db,
builder: (context, snapshot) {
if (!snapshot.hasData)
return const Center(
child: CircularProgressIndicator(),
);
return ListView.builder(
itemCount: snapshot.data!.docs.length,
itemBuilder: (BuildContext context, int index) {
return snapshot.data!.docs[index]['Loans approved']
['Loans overdue']['Loans paid'];
});
},
));
}
}
【问题讨论】:
-
请查看我最近的回答here。基本上字段数据将在
docs[index].data()!. -
当我这样做时,我收到此错误:未为“对象”类型定义运算符“[已批准的贷款]”。尝试定义运算符'[]'。
-
您似乎有一个 fromJson 转换器,因此 is 已经是这里的一个对象。打印出来或用断点停止,然后检查
docs[index].data()!中的内容。 -
抱歉,我是 Flutter 的初学者,所以不知道该怎么做?
标签: flutter google-cloud-firestore