gpt4 book ai didi

firebase - Flutter 获取特定的 Firestore 文档数据并将其存储到 String 变量中

转载 作者:IT王子 更新时间:2023-10-29 07:16:14 34 4
gpt4 key购买 nike

我正在尝试从我的 Firestore 获取数据并将数据存储到一个名为 time 的字符串变量中。然后将变量放入_event。

但是,当我运行代码时,我得到了null,我不知道为什么。

StateFulWidget...

String event;
Map<DateTime, List> _events;

@override
void initState() {
super.initState();

Firestore.instance.collection('events').document('2019-07-
30').get().then((
DocumentSnapshot ds) {
event = ds['time'];
});

_events = {
DateTime.parse("2019-08-01"): [event]
};
}

This is my Firestore document

初学Flutter,为这个问题纠结了很久。希望有人能帮助我

非常感谢

更新

我更改我的代码。

但是,我仍然遇到错误:方法 []('DateTime' 的实例) 在 null 上被调用。

String event;
Map<DateTime, List> _events;

Future<String> getData()async{
final ds = await
Firestore.instance.collection('events').document('2019-07-30').get();
return ds['time'];
}

@override
void initState() {
super.initState();

getData().then((s) {
event = s;
//when I print(s), it showed the data correctly
});


_events = {
DateTime.parse("2019-08-01"): [event]
};

谁能告诉我哪里错了?

谢谢!

最佳答案

你不是在等待结果,即 _events = .. 将在 .then() 子句之前运行,这就是为什么 event变量仍然为空;

.get() 是一个 Future,因此您需要等待结果。

final ds = await Firestore.instance.collection('events').document('2019-07- 
30').get();

event = ds['time'];

_events = {
DateTime.parse("2019-08-01"): [event]
};

关于firebase - Flutter 获取特定的 Firestore 文档数据并将其存储到 String 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57320438/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com