Firebase 如何从Flatter中的Firestore获取值
我需要获取Firestore文档中的值,它有一个子集合 向数据库添加数据 在添加过程中,我尝试在Firebase 如何从Flatter中的Firestore获取值,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我需要获取Firestore文档中的值,它有一个子集合 向数据库添加数据 在添加过程中,我尝试在userPolls集合上完成的是,我需要基于userId添加一个Id的文档,然后创建一个“dailyPolls”集合,该集合包含一个当前日期的Id但没有“/”的文档,我将所有数据放在其中,如下所示: final CollectionReference userPollCollection = Firestore.instance.collection('userPolls'); Futur
userPolls
集合上完成的是,我需要基于userId
添加一个Id
的文档,然后创建一个“dailyPolls”集合,该集合包含一个当前日期的Id
但没有“/”的文档,我将所有数据放在其中,如下所示:
final CollectionReference userPollCollection =
Firestore.instance.collection('userPolls');
Future setPoll(UserPoll userPoll) async {
var dt = userPoll.pollDate.replaceAll('/', '');
return await userPollCollection
.document(userId)
.collection('daillyPolls')
.document(dt)
.setData({
'uid': userId,
'pollDate': userPoll.pollDate,
'status': userPoll.status,
'statusCode': userPoll.statusCode
});
}
从数据库查询数据
在检索数据时,我需要访问userPolls
,然后获取具有Id
的文档,即userId
,然后转到dailyPolls
的集合,然后获取具有Id
的文档,该文档基于当前日期,不带“/”,然后获取其中的数据
Future getPoll() async {
final DateTime now = DateTime.now();
final DateFormat formatter = DateFormat('yyyy/MM/dd');
final String formatted = formatter.format(now);
var pollDate = formatted;
var dt = pollDate.replaceAll('/', '');
var docRef = userPollCollection
.document(userId)
.collection('dailyPolls')
.document(dt);
docRef.get().then((onValue) {
print(onValue.data);
});
}
红色的正方形是道路,蓝色是我需要的
我对平面数据库非常陌生。我不确定您尝试使用的类是什么,但以下是以正确格式获取日期的最简单方法:
final DateTime now = DateTime.now();
final DateFormat formatter = DateFormat('yyyy/MM/dd');
final String formatted = formatter.format(now);
print(formatted);
var docRef = userPollCollection
.document(userId)
.collection('dailyPolls')
.document(formatted);
要获取状态字段,您需要执行以下操作:
docRef.get().then((onValue) {
print(onValue.data().status);
});
如果您仍然有问题,请检查第一个
print
语句的输出,查看其值是否与您在数据库中看到的值匹配。对不起,我不清楚,先生。先生,我想得到的是文档的数据20200826
。我需要“status”属性,以便与其他内容进行比较。我更新了答案以显示如何获取该特定字段。再见,谢谢你,先生。我更改了保存数据的方式,以便更容易获得结果。但是你的建议帮助了我。我用.documents尝试了这段代码,但它对我不起作用。。应该是,博士