android - 从等于 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),
));
}));
}