Flutter:将PDF文件列表保存到Firebase存储中

问题描述 投票:0回答:1

我有一个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列表,如下所示:

enter image description here

这是显示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列表,则... ...>

list flutter pdf firebase-storage
1个回答
0
投票

此列表来自哪里(您说的已经上传的列表)。它们是否已经上传到您的Firebase存储中?他们是通过您的应用上传的吗?

[上传文件并拥有URL时,您也可以将元数据存储在Firestore中。该文档实质上就是您的ResumeModel。然后,存储中的每个PDF在Firestore中都会有一个相应的文档,并存储了其URL。

© www.soinside.com 2019 - 2024. All rights reserved.