我想从Firebase数据库查看PDF

mlnl4t2r  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(109)
Widget build(BuildContext context) {
    final Size size = Get.size;
    return Scaffold(
      appBar: AppBar(
        title: const Text("PDF View"),
      ),
      body: StreamBuilder(
        stream: FirebaseFirestore.instance
            .collection('users')
            .doc(_auth.currentUser!.uid)
            .collection('myorders')
            .snapshots(),
        builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (snapshot.hasData) {
            return ListView.builder(
              itemCount: snapshot.data?.docs.length,
              itemBuilder: (context, i) {
                QueryDocumentSnapshot x = snapshot.data!.docs[i];
                return SizedBox(
                    height: size.height,
                    width: size.width,
                    child: Column(
                      children: [
                        SfPdfViewer.network(
                          x['file'],
                          controller: _pdfViewerController,
                        ),
                      ],
                    ));

错误:
RenderConstrainedOverflowBox对象在布局过程中被赋予了无限大小。这可能意味着它是一个尽可能大的渲染对象,但它被放在另一个渲染对象中,允许其子对象选择自己的大小。

qpgpyjmq

qpgpyjmq1#

您不能将文件上传到Firestore数据库,它是一个非SQL数据库,将数据存储为文档中包含的键,值对。这些文档组成集合。
如果您想存储PDF,您有几个选项,其中两个选项是:

  • 将文件上传到Firebase Cloud Storage,然后将URI保存在Firestore数据库中
  • 将PDF(如果足够小)转换为base64以在Firestore中保存为字符串,然后在检索数据时将其转换回来

相关问题