簡體   English   中英

Flutter firebase 從文檔中獲取一個字段

[英]Flutter firebase get a field from document

我正在嘗試從集合中的字段獲取消息。 這是一個只讀數據,我已經像這樣建模了

class SocialShare {
  final String message;
  SocialShare({
    this.message,
  });
  factory SocialShare.fromJson(Map<String, dynamic> json) {
    return SocialShare(
      message: json['message'],
    );
  }
}

我有一個名為“社交分享”的集合,其中包含一個文檔,其中包含一個名為 message 的字段。

我是這樣稱呼它的

class SocialShares {
  final CollectionReference _socialMessage =
      FirebaseFirestore.instance.collection('socialShare');

  Future<SocialShare> fetchsocial() {
    return _socialMessage.get().then((value) {
      return SocialShare.fromJson(value); // how can i call it
    });
  }
}

我如何從 firebase 獲得該值

您可以執行 fetchSocial async 並等待結果返回:

fetchSocial() async{
  var value = await _socialMessage.get();
  return SocialShare.fromJson(value);
}

然后你必須用 await 或者你需要的地方調用 fetchSocial 方法。

等待 fetchSocial() 或 fetchSocial.then...

value _socialMessage.get().then((value) {中的值是一個QuerySnapshot object ,其中包含socialShare集合中所有文檔的DocumentSnapshot

要獲取一個字段或所有字段的Map<String, dynamic> ,您需要來自單個文檔的數據。 例如,要從集合中的第一個文檔中獲取message字段,您可以執行以下操作:

return SocialShare.fromJson(value.docs[0].data());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM