Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何从Flatter中的Firestore获取值_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase 如何从Flatter中的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

我需要获取Firestore文档中的值,它有一个子集合

向数据库添加数据

在添加过程中,我尝试在
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尝试了这段代码,但它对我不起作用。。应该是,博士