我有一个list of PDFs
,需要上传到Firebase Storage
并从已经上传到Firebase存储的列表中获取所有URL
,以打开每个PDF。怎么做?
如果不是PDF列表,我已经成功通过此方法将其上传并获得了URL
:
Future<String> _uploadToFirebaseStorage() async {
final StorageReference storageRef =
FirebaseStorage.instance.ref().child(_fileName);
final StorageUploadTask uploadTask = storageRef.putFile(File(_path));
final StorageTaskSnapshot downloadUrl = (await uploadTask.onComplete);
final String url = (await downloadUrl.ref.getDownloadURL());
return url;
}
但是如何使该方法支持保存已经在ListView Builder中显示的PDF列表,如下所示:
这是显示PDF文件列表的方法:
return ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: listResume.length,
itemBuilder: (BuildContext context, int index) {
var resume = listResume[index];
return Padding(
padding: EdgeInsets.only(bottom: 20.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
padding: EdgeInsets.only(right: 10, top: 0),
child: Image.asset(
ImageAssets.resume,
width: 47,
height: 47,
fit: BoxFit.contain,
),
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
resume.name,
style: SourceSansProStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: _themeData.textTheme.bodyText2.color),
),
Padding(
padding: EdgeInsets.only(top: 2),
child: Text(
resume.pathOrUrl,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: SourceSansProStyle(
fontSize: 16,
fontWeight: FontWeight.w400,
color: Colors.grey),
),
),
],
),
),
],
),
);
},
);
这是listResume.length
==> List<ResumeModel> listResume = <ResumeModel>[];
]的变量>
这是我的模特:
class ResumeModel { final String name; final String pathOrUrl; const ResumeModel({this.name, this.pathOrUrl}); }
如何将PDF列表上传到Firebase Storage,以及如何从已经像
final String url = (await downloadUrl.ref.getDownloadURL());
这样已经上传的列表中获取所有URL pdf?
我有一个PDF列表,需要上载到Firebase Storage,并从该列表中获取所有URL,这些URL已经上载到Firebase Storage,以打开每个PDF。怎么做?如果不是PDF列表,则... ...>
此列表来自哪里(您说的已经上传的列表)。它们是否已经上传到您的Firebase存储中?他们是通过您的应用上传的吗?
[上传文件并拥有URL时,您也可以将元数据存储在Firestore中。该文档实质上就是您的ResumeModel。然后,存储中的每个PDF在Firestore中都会有一个相应的文档,并存储了其URL。