无法在容器 Flutter Firebase 中获取 List<Text> 的值
Posted
技术标签:
【中文标题】无法在容器 Flutter Firebase 中获取 List<Text> 的值【英文标题】:Can't get value of a List<Text> in container Flutter Firebase 【发布时间】:2021-01-20 07:10:21 【问题描述】:我正在尝试打印我的“菜单”集合中存在的文档的文档 ID。但似乎小部件没有获得 documentIDs List<Text>
列表的值。当我在 addDocId 函数中打印列表时,它会打印 documentID 的内容,但如果我打印列表,它只会在构建小部件中输出 - ('[]')。我不知道为什么 docIds 是空的。请帮帮我。
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
class Category extends StatefulWidget
@override
_CategoryState createState() => _CategoryState();
class _CategoryState extends State<Category>
bool _initialized = false;
bool _error = false;
initializeFlutterFire() async
try
await Firebase.initializeApp();
setState(()
_initialized = true;
);
catch (e)
setState(()
_error = true;
);
@override
void initState()
initializeFlutterFire();
super.initState();
Widget somethingWentWrong()
return AlertDialog(
title: Text('Something Went Wrong'),
content: Icon(
Icons.error,
color: Colors.red,
size: 40.0,
),
);
Widget loading()
return Center(
child: CircularProgressIndicator(
backgroundColor: Colors.black,
valueColor: new AlwaysStoppedAnimation<Color>(Colors.black),
),
);
List<Text> docIds = [];
void addDocId(String s)
docIds.add(Text(s));
print(docIds);
@override
Widget build(BuildContext context)
if (_error)
return somethingWentWrong();
if (!_initialized)
return loading();
FirebaseFirestore.instance
.collection('Menu')
.get()
.then((QuerySnapshot querySnapshot) =>
querySnapshot.docs.forEach((doc)
addDocId(doc.id);
)
);
print(docIds);
return Container(
margin: EdgeInsets.fromLTRB(
50.0,
100.0,
50.0,
100.0,
),
// color: Colors.blueAccent,
child: Center(
child: ListView(
children: docIds,
),
));
【问题讨论】:
【参考方案1】:由于 Text
仅在 Flutter 中被识别,因此它不适用于 Firebase。尝试使用带有文本值的字符串,或者使用文本中的每个独立变量(例如字体大小)创建一个映射。
【讨论】:
以上是关于无法在容器 Flutter Firebase 中获取 List<Text> 的值的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Flutter 中使用 Firebase Auth 进行注册
Flutter:无法从 firebase 读取数据。方法 '[]' 在 null 错误上被调用
Flutter - 无法构建插件 firebase_core