首页 > 解决方案 > 从等于 sysdate 的 firebase 存储中获取文件

问题描述

下面我正在尝试实现一个项目,在该项目中我获取与系统日期匹配的文件,但问题是我在使用 if 子句时得到空值。我想从firebase存储中获取文件名等于systemdate的文件。例如:如果firebase有文件 20210916 20210917 20210920 并且如果它匹配 sysdate 即 20210920 它应该列出文件 20210920 但我得到空值。请务必遵守。

import 'package:jiwdopani/Precious/file_page.dart';
import 'package:jiwdopani/Precious/firebase_file.dart';
import 'package:jiwdopani/Precious/preApi.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'breadMain.dart';
// ignore: non_constant_identifier_names
EnglishMain() => MyApp();
class MyApp extends StatelessWidget {
 static final String title = "Today's Meditation";
  @override
  Widget build(context) => MaterialApp(
    debugShowCheckedModeBanner: false,
    title: title,
    //color: Colors.indigo[900],
    home: MainPage(),
  );
}
class MainPage extends StatefulWidget {
  String get file => null;
  @override
  _MainPageState createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
  Future<List<FirebaseFile>> futureFiles;
  @override
  void initState() {
    super.initState();
    futureFiles = preApi.listAll('EnglishBread/');
  }
  @override
  Widget build(context) => SafeArea(
      child: WillPopScope(
          onWillPop: () => Future.value(false),
          child: Scaffold(
            appBar: AppBar(
                backgroundColor: Colors.indigo[900],
                title: Text(MyApp.title),
                centerTitle: true,
                automaticallyImplyLeading: false,
                leading: IconButton(
                    icon: Icon(Icons.arrow_back),
                    onPressed: () async => Navigator.push(
                        context,
                        MaterialPageRoute(
                            builder: (context) => BreadMain())))),
            body: FutureBuilder<List<FirebaseFile>>(
              future: futureFiles,
              builder: (context, snapshot) {
                switch (snapshot.connectionState) {
                  case ConnectionState.waiting:
                    return Center(child: CircularProgressIndicator());
                  default:
                    if (snapshot.hasError) {
                      return Center(child: Text('Some error occurred!'));
                    } else {
                      final files = snapshot.data;
                      return Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          //buildHeader(files.length),
                          const SizedBox(height: 12),
                          Expanded(
                            child: ListView.builder(
                                //itemCount: files.length,
                                itemBuilder: (context, index) {
                                  final file = files[index];
                                  //for (var i = 0; i < index; i++) {
                                  final DateTime now = DateTime.now();
                                  final DateFormat formatter = DateFormat(
                                      'yyyyMMdd');
                                  String formatted = formatter.format(now);
                                  var dateNow = int.parse(formatted);
                                  var b = files[index].name
                                      .split('(')
                                      .first;
                                  var fileN = int.parse(b);
                                  print(fileN);
                                    if (fileN == dateNow) {
                                      print(fileN);
                                      return buildFile(context, file);
                                      //return buildFile(context, file);
                                    }
                                    else {
                                      print("Sorry File Could Not Be Found");
                                    }
                                  }
                              //  }
                            ),
                          ),
                        ],
                      );
                    }
                }
              },
            ),
          )));
  Widget buildFile(context, FirebaseFile file) => Card(
    child: ListTile(
        title: Text(
          file.name,
          style: TextStyle(
            fontWeight: FontWeight.bold,
            color: Colors.black,
          ),
        ),
        onTap: () {
          Navigator.of(context).push(MaterialPageRoute(
            builder: (context) => FilePage(file: file),
          ));
                                 }));
        }

标签: androidflutterdart

解决方案


推荐阅读