没有StreamBuilder的情况下如何从Firestore获取数据?

时间:2020-03-14 19:02:31

标签: firebase flutter dart google-cloud-firestore

我想用firestore中的值设置card,没有streambuilder怎么能得到它?

class _CardsSectionState extends State<CardsSectionAlignment>
with SingleTickerProviderStateMixin {
  int cardsCounter;
  int card = 0;

2 个答案:

答案 0 :(得分:0)

要能够为card设置值,那么您需要使用snapshot()方法,该方法将返回Stream并继续监听更新,或者您需要使用get()将返回Future。在这两种情况下,操作都是异步的。因此,不使用streambuilder

就无法设置它

答案 1 :(得分:0)

您需要在_CardsSectionState的initState方法中执行查询,然后将查询结果中的卡值分配给整数变量卡。

用具有卡值的集合名称替换collectionName。用具有卡值的集合中的字段名称替换'card_value'。

 @override
  void initState() {
    super.initState();
 Firestore.instance.collection('collectionName').getDocuments().then((val){
          if(val.documents.length > 0){
            card = val.documents[0].data["card_value"];
          }
          else{
            print("Not Found");
          }
        });
}