繁体   English   中英

如何从refrenced文档(Firebase)中的字段获取String数据

[英]How to get String data from field inside a refrenced document (Firebase)

在我的Flutter应用程序中,我想从一个包含对另一个Collection的参考的字段中获取一些信息。 我不知道如何从引用文档中的字段获取信息。

下面是这两个系列的两张照片。

第一张图片包含该字段(“geslacht”)所指的主要集合:“/ gender / Girl”

收集1

第二张图显示了引用的集合。

收集2

我目前写了以下文章(按照本教程

class Record {
  final String name;
  var color;
  final DocumentReference reference;
  Record.fromMap(Map<String, dynamic> map, {this.reference})
      : assert(map['name'] != null),
        assert(map['geslacht'] != null),
        name = map['name'],
        color = map['geslacht'];
  Record.fromSnapshot(DocumentSnapshot snapshot)
      : this.fromMap(snapshot.data, reference: snapshot.reference);  
  @override
  String toString() => "Record<$name:$votes>";
}

哪个完美地从名为“name”的字段中获取数据,并为名为“geslacht”的字段返回DocumentReference的实例

我很想获得此参考文档中的信息。 因此,总结价值“粉红色”是我想要得到的。 (路径是宝贝 - > dana - > geslacht - >性别 - >女孩 - >颜色 - >粉红色)

先谢谢您的帮助!

您必须使用该DocumentReference get()另一个文档,就像您自己构建DocumentReference一样。 Cloud Firestore不会自动跟踪您的引用 - 您必须为此编写代码。

您需要使用该引用查询数据,您目前只获取第一个文档:

class Record {
  final String name;
  var color;
  final DocumentReference reference;
  Record.fromMap(Map<String, dynamic> map, {this.reference})
      : assert(map['name'] != null),
        assert(map['geslacht'] != null),
        name = map['name'],
        color = map['geslacht'];
  Record.fromSnapshot(DocumentSnapshot snapshot)
      : this.fromMap(snapshot.data, reference: snapshot.reference);  
  @override
  String toString() => "Record<$name:$votes>";
}

你需要做的是执行另一个这样的查询:

_getGender(ref) async {
  // ref is '/gender/Girl/' in your case
  var query = await Firestore.instance.document(ref).get();
  print('color is: ' + query.data['color'])
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM