【发布时间】:2021-07-30 13:16:18
【问题描述】:
这是完整代码,但我在标题中遇到错误:Text(map["title"]), 部分代码
final TextEditingController _controller = TextEditingController();
void _addTask() {
FirebaseFirestore.instance
.collection("todos")
.add({"title": _controller.text});
_controller.text = "";
}
Widget _buildList(QuerySnapshot snapshot) {
return ListView.builder(
itemCount: snapshot.docs.length,
itemBuilder: (context, index) {
final doc = snapshot.docs[index];
final map = doc.data();
return ListTile(
title: Text(map["title"]),
);
},
);
}
class TodoListPage extends StatelessWidget {
Widget _buildBody(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(children: [
Row(
children: [
Expanded(
child: TextField(
controller: _controller,
decoration: InputDecoration(
hintText: "Enter task name",
),
)),
FlatButton(
child: Text(
'Add Task',
style: TextStyle(color: Colors.white),
),
color: Colors.green,
onPressed: () {
_addTask();
},
)
],
),
StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance.collection("todos").snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
return Expanded(child: _buildList(snapshot.data));
},
)
]),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Todo List'),
),
body: _buildBody(context),
);}
}
我想显示云火库的文档标题。
错误
The operator '[]' isn't defined for the type 'Object'.
Try defining the operator '[]'.
【问题讨论】:
-
试试把最终的 Map map = doc.data()
-
请检查副本以获取正确的解决方案stackoverflow.com/questions/67610111/…
标签: firebase flutter google-cloud-firestore