簡體   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