web-dev-qa-db-ja.com

FlutterのFirestoreコレクションからすべてを入手する

プロジェクトにFirestoreをセットアップしました。 categoriesという名前の新しいコレクションを作成しました。このコレクションでは、uniq idを持つ3つのドキュメントを作成しました。 Flutterアプリケーションでこのコレクションを取得したいので、CollectionReferenceを作成しました。

Firestore.instance.collection('categories')

しかし、私は次に何がわからない。

このプラグインを使用していますfirebase_firestore: 0.0.1+1

8

StreamBuilderを使用する

import 'package:flutter/material.Dart';
import 'package:firebase_firestore/firebase_firestore.Dart';

class ExpenseList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new StreamBuilder<QuerySnapshot>(
        stream: Firestore.instance.collection("expenses").snapshots,
        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (!snapshot.hasData) return new Text("There is no expense");
          return new ListView(children: getExpenseItems(snapshot));
        });
  }

  getExpenseItems(AsyncSnapshot<QuerySnapshot> snapshot) {
    return snapshot.data.documents
        .map((doc) => new ListTile(title: new Text(doc["name"]), subtitle: new Text(doc["amount"].toString())))
        .toList();
  }
}
9

一度だけ読みたい場合のコードは次のとおりです

   QuerySnapshot querySnapshot = await Firestore.instance.collection("collection").getDocuments();
    var list = querySnapshot.documents;
12
Tree