我无法将数据从 Firestore 获取到我的应用程序中

Posted

技术标签:

【中文标题】我无法将数据从 Firestore 获取到我的应用程序中【英文标题】:I cannot get the data from the firestore into my application 【发布时间】:2021-12-09 02:30:21 【问题描述】:

我是编程新手,在尝试创建小型 TODO 应用程序时,我能够将数据保存到 Cloud 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),
               );
               
             
             ),
            ],
          ),
        ),
      ),
    );
  

【问题讨论】:

【参考方案1】:

您的收藏名称拼写错误。请记住,Firestore 区分大小写

Todostodos

FirebaseFirestore.instance.collection("Todos").add("title" : _controller.text);

这里:

stream: FirebaseFirestore.instance.collection('todos').snapshots(),

如果这没有帮助,请告诉我

【讨论】:

您好,非常感谢您的建议。我太笨了,连最简单的错误都没有检查。

以上是关于我无法将数据从 Firestore 获取到我的应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 Firestore 检索到我的列表

将我的应用程序发布到 google playstore 后,我的应用程序无法获取 firestore 数据以回收分页视图

如何从flutter中的firestore文档字段中获取数据?

在我的 iOS 应用程序中实施 pod 'Firebase/Firestore' 后无法运行应用程序

从 Firestore 数据库中获取最新数据到 Flutter App

Flutter:Google Maps 如何从 Firestore 设置图标