Flutter / Firebase-タイプ 'Future <int>'はタイプ 'int'のサブタイプではありません

TJMitch95:

私は羽ばたきをするのが初めてですが、これはおそらく簡単な質問ですが、未来と未来のビルダーをより理解するのに役立つ少しの説明を探しています。(ユーザーが前の画面で何をクリックしたかに応じて)firebaseにクエリを実行しようとしていますが、何かが表示される前にすべてのデータがロードされるのを待ちたいのですが。これを行うには、大幅に変更されないいくつかの製品を紹介するので、将来のビルダーが最も適切だと思いました。getData関数を作成しました。

  Future getCardData() async {
    return await Firestore.instance.collection('cards')
        .where('Event', isEqualTo: widget.documentid).snapshots();
    }
  }

そしてそれをここに実装しました:

  body: FutureBuilder(
    future: getCardData(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) {
        return Center(child: const Text('Loading...'));
      }
      return GridView.builder(
        shrinkWrap: true,
        gridDelegate:
        SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
        itemCount: snapshot.data.length,
        itemBuilder:
            (BuildContext context, int index) {
          print(snapshot.data.documents[index].data['img_url']);
          return Padding(
            padding: const EdgeInsets.all(8.0),
            child: Container(
              height: MediaQuery.of(context).size.height / 6,
              child: Center(
                  child: Card(
                    elevation: 8.0,
                    child: Image(
                      image: FirebaseImage(snapshot.data.documents[index].data['img_url']),
                    ),
                  )
              ),
            ),
          );
        },
      );
    },
  ),

しかし、(GridView.buiderのitemCount部分であると想定していることから)次のエラーが発生します。

type 'Future<int>' is not a subtype of type 'int'

この将来の値にアクセスし、残りのコードを調整して、画像が表示される前にデータが読み込まれるのを待つ方法を考えています。

ピーター・ハダッド:

snapshots()を返すためStream、次のように変更しgetDocuments()ます。

Future<QuerySnapshot> getCardData() async {
  return await Firestore.instance.collection('cards')
    .where('Event', isEqualTo: widget.documentid).getDocuments();
}

次にitemCount、次の操作を実行できます。

itemCount: snapshot.data.documents.length,

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「タイムスタンプ」はタイプ「int」のサブタイプではありません-Flutter-FirebaseFirestore

分類Dev

Flutter-未処理の例外:タイプ 'String'はタイプ 'int'のサブタイプではありません 'index'

分類Dev

Flutter:jsonをホスティングから解析する場合、タイプ 'String'はタイプ 'int'のサブタイプではありません

分類Dev

タイプ 'int'は、Dartのタイプ 'String'エラーのサブタイプではありません

分類Dev

タイプ 'TextEditingController'は、型キャストのタイプ 'int'のサブタイプではありません

分類Dev

未処理の例外:タイプ 'int'はタイプ 'String'のサブタイプではありません

分類Dev

Flutter / Firebaseタイプ「String」はタイプ「List <dynamic>」のサブタイプではありません

分類Dev

Flutter&Firebase:タイプ「Query」はタイプ「CollectionReference」のサブタイプではありません

分類Dev

タイプ「int」はタイプ「double」のサブタイプではありません

分類Dev

タイプ 'List <dynamic>'はタイプ 'List <int>'のサブタイプではありません。

分類Dev

タイプ「文字列」は、予期されるタイプ「int」のサブタイプではありません

分類Dev

タイプintは、タイプstring FlutterFirebaseのサブタイプではありません

分類Dev

Flutter: 'Future <dynamic>'はbool型のサブタイプではありません

分類Dev

Flutter'Future <void> 'はタイプ' Widget 'のサブタイプではありません

分類Dev

例外タイプ「List <dynamic>」は、Flutterアプリでキャストされたタイプの「List <int>」タイプのサブタイプではありません

分類Dev

タイプ 'int'は、タイプcastjsonのタイプ 'String'のサブタイプではありません| デコードの問題

分類Dev

タイプ「文字列」は「インデックス」エラーのタイプ「int」のサブタイプではありません

分類Dev

タイプ 'int'は、POSTリクエストの送信時に型キャストのタイプ 'String'のサブタイプではありません

分類Dev

'文字列'は 'int'フラッターのサブタイプではありません

分類Dev

タイプ 'Future <dynamic>'はタイプ 'Future <Widget>'のサブタイプではありません

分類Dev

タイプ「Future <dynamic>」はタイプ「Future <List <History >>」のサブタイプではありません

分類Dev

未処理の例外:タイプ 'Future <QuerySnapshot>'はタイプ 'QuerySnapshot'のサブタイプではありません

分類Dev

タイプ 'Future <dynamic>'はタイプ '()=> void'のサブタイプではありません

分類Dev

タイプ 'Future <dynamic>'はタイプ 'double'のサブタイプではありません

分類Dev

タイプ「Future <File>」はタイプ「File」のサブタイプではありません

分類Dev

タイプ「int」の引数はタイプ「int」のパラメータと互換性がありません

分類Dev

タイプ「int」の引数はタイプ「int *」のパラメータと互換性がありません

分類Dev

列挙値のタイプはintではありませんか?

分類Dev

タイプ 'int'の引数は反復可能ではありません

Related 関連記事

  1. 1

    「タイムスタンプ」はタイプ「int」のサブタイプではありません-Flutter-FirebaseFirestore

  2. 2

    Flutter-未処理の例外:タイプ 'String'はタイプ 'int'のサブタイプではありません 'index'

  3. 3

    Flutter:jsonをホスティングから解析する場合、タイプ 'String'はタイプ 'int'のサブタイプではありません

  4. 4

    タイプ 'int'は、Dartのタイプ 'String'エラーのサブタイプではありません

  5. 5

    タイプ 'TextEditingController'は、型キャストのタイプ 'int'のサブタイプではありません

  6. 6

    未処理の例外:タイプ 'int'はタイプ 'String'のサブタイプではありません

  7. 7

    Flutter / Firebaseタイプ「String」はタイプ「List <dynamic>」のサブタイプではありません

  8. 8

    Flutter&Firebase:タイプ「Query」はタイプ「CollectionReference」のサブタイプではありません

  9. 9

    タイプ「int」はタイプ「double」のサブタイプではありません

  10. 10

    タイプ 'List <dynamic>'はタイプ 'List <int>'のサブタイプではありません。

  11. 11

    タイプ「文字列」は、予期されるタイプ「int」のサブタイプではありません

  12. 12

    タイプintは、タイプstring FlutterFirebaseのサブタイプではありません

  13. 13

    Flutter: 'Future <dynamic>'はbool型のサブタイプではありません

  14. 14

    Flutter'Future <void> 'はタイプ' Widget 'のサブタイプではありません

  15. 15

    例外タイプ「List <dynamic>」は、Flutterアプリでキャストされたタイプの「List <int>」タイプのサブタイプではありません

  16. 16

    タイプ 'int'は、タイプcastjsonのタイプ 'String'のサブタイプではありません| デコードの問題

  17. 17

    タイプ「文字列」は「インデックス」エラーのタイプ「int」のサブタイプではありません

  18. 18

    タイプ 'int'は、POSTリクエストの送信時に型キャストのタイプ 'String'のサブタイプではありません

  19. 19

    '文字列'は 'int'フラッターのサブタイプではありません

  20. 20

    タイプ 'Future <dynamic>'はタイプ 'Future <Widget>'のサブタイプではありません

  21. 21

    タイプ「Future <dynamic>」はタイプ「Future <List <History >>」のサブタイプではありません

  22. 22

    未処理の例外:タイプ 'Future <QuerySnapshot>'はタイプ 'QuerySnapshot'のサブタイプではありません

  23. 23

    タイプ 'Future <dynamic>'はタイプ '()=> void'のサブタイプではありません

  24. 24

    タイプ 'Future <dynamic>'はタイプ 'double'のサブタイプではありません

  25. 25

    タイプ「Future <File>」はタイプ「File」のサブタイプではありません

  26. 26

    タイプ「int」の引数はタイプ「int」のパラメータと互換性がありません

  27. 27

    タイプ「int」の引数はタイプ「int *」のパラメータと互換性がありません

  28. 28

    列挙値のタイプはintではありませんか?

  29. 29

    タイプ 'int'の引数は反復可能ではありません

ホットタグ

アーカイブ