flutter - 我无法将数据从 Firestore 获取到我的应用程序中
问题描述
我是编程新手,当我尝试创建一个小型 TODO 应用程序时,我能够将数据保存到云 Firestore,但是当我尝试使用 Streambuilder 检索数据时出现问题。在 null 安全性之前,我一直在关注旧教程,所以我怀疑问题与 null 安全性有关。该代码在android studio中没有任何错误,但无法检索来自firestore的数据。代码如下:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class AddTODOlist extends StatelessWidget {
static String id = 'add_todolist';
final TextEditingController _controller = TextEditingController();
void _addUser(){
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()as dynamic)['title'];
return ListTile(
title: Text(map,style: TextStyle(color: Colors.black),),
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Loan System',),
centerTitle: true,
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Row(
children: [
Expanded(
child: TextField(
controller: _controller,
decoration: InputDecoration(
hintText: 'Add new user',
),
),
),
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all<Color>(Colors.blue),
),
onPressed:(){
_addUser();
},
child: Text('Add',
style: TextStyle(
color: Colors.white,
),),
),
],
),
StreamBuilder<QuerySnapshot?>(
stream: FirebaseFirestore.instance.collection('todos').snapshots(),
builder: (context, snapshot){
if(!snapshot.hasData) return LinearProgressIndicator();
else {
return Expanded(
child: _buildList(snapshot.data),
);
}
}
),
],
),
),
),
);
}
}
解决方案
集合名称的拼写错误。请记住,Firestore 区分大小写
Todos
对比todos
FirebaseFirestore.instance.collection("Todos").add({"title" : _controller.text});
和这里:
stream: FirebaseFirestore.instance.collection('todos').snapshots(),
如果这没有帮助,请告诉我
推荐阅读
- python - 计算复杂度
- typescript - Typescript 推断类型有时会解析为任何函数返回类型
- vba - VBA将字符串y = f(x1,x2 ...)公式转换为Double?
- php - 使用链接更改 var 值
- java - 如何使无效数字不添加到我的最终计算和计数器总数中?
- javascript - svg 元素没有出现在使用 d3.js 的正文中
- wordpress - 如何为 WordPress 网站的 URL 重定向或重写编写 .htaccess?
- java - 从 OOP 开始 - 骰子游戏问题
- .net - 如何使用 Autofac 配置从插件程序集中加载 ASP.NET Core 控制器?
- r - 将平均值抓取到新数据帧中的循环函数返回子集错误