【问题标题】:flutter : not able to display image from firebase firestore颤振:无法显示来自 Firebase Firestore 的图像
【发布时间】:2021-07-23 21:23:42
【问题描述】:

我正在尝试获取要显示在存储在 firebase firestore 中的容器小部件上的图像数组。 url 与索引一起存储在 firestore 和云存储中。下面是完整的代码。我遵循了在线提供的代码,我不确定我错过了什么或哪里出错了。请帮帮我。在此先感谢。

 class NewImage extends StatefulWidget{

 List<String> urls;
 int currentIndex;
 VoidCallback onImageTap;

NewImage({Key key,@required this.urls,@required this.currentIndex,@required this.onImageTap})
  :super(key:key);

  @override
 _NewImage createState() => _NewImage();
 }

 class _NewImage extends State<NewImage>
with SingleTickerProviderStateMixin{


 List<String> images = [];
 final auth = FirebaseAuth.instance;
 final FirebaseFirestore fb = FirebaseFirestore.instance;


 @override
 void initState() {
  super.initState();
  getImages();
}



   @override
   Widget build(BuildContext context) {

return Scaffold(
  body: Container(
    child: SafeArea(
      child: Column(
        children: [
          Container(
            height: 160.0,
            padding: EdgeInsets.symmetric(vertical: 15.0,horizontal: 15.0),
            child: FutureBuilder(
              future: getImages(),
              builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
                if (snapshot.connectionState == ConnectionState.done) {
                  return ListView.builder(
                    scrollDirection: Axis.horizontal,
                      shrinkWrap: true,
                      itemCount: snapshot.data.docs.length,
                      itemBuilder: (BuildContext context, int index) {
                        return ListTile(
                          contentPadding: EdgeInsets.all(8.0),
                          leading: Image.network(
                              snapshot.data.docs[index].data()["images"],
                              fit: BoxFit.fill),
                        );


                      });
                } else if (snapshot.connectionState == ConnectionState.none) {
                  return Text("No data");
                }
                return CircularProgressIndicator();
              },
            ),

          ),


        ],
      ),
    ),
  ),
);


}

  Future<QuerySnapshot> getImages()  async {
    return FirebaseFirestore.instance.collection("users").doc(
      auth.currentUser.uid).collection("images").get();
}

  }

【问题讨论】:

  • 您的 Firebase 结构是什么样的?您是否有存储图像的链接数组,或者“存储在 firebase firestore”中是什么意思?
  • 是的,它们是具有索引值的链接数组,例如 0 然后是它的 url,1 然后是它的 url 等等,在“图像”集合下
  • 现在收到此错误:W/DynamiteModule(20853): 找不到 providerinstaller 的本地模块描述符类。考虑本地模块 providerinstaller:0 和远程模块 providerinstaller:0 W/ProviderInstaller(20853): 失败加载 providerinstaller 模块:未找到可接受的模块。本地版本为0,远程版本为0。访问隐藏方法Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (灰名单、核心平台 API、链接、允许)
  • 请检查我已上传图片。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

您将数组传递给 networkImage 而不是图像

改成这样

Image.network(
      snapshot.data.docs[index].data()["images"][index],// [index] added
      fit: BoxFit.fill),

【讨论】:

  • 感谢您的回复,但现在出现以下错误:W/DynamiteModule(20853): 找不到 providerinstaller 的本地模块描述符类。考虑本地模块 providerinstaller:0 和远程模块 providerinstaller:0 W/ProviderInstaller( 20853):无法加载 providerinstaller 模块:找不到可接受的模块。本地版本为0,远程版本为0。访问隐藏方法Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (灰名单、核心平台 API、链接、允许)
  • 请检查我已上传图片
  • 如果您使用的是 flutterfire,请使用 cloud_firestore,因为这似乎是问题github.com/FirebaseExtended/flutterfire/issues/4447
  • 正如@MoaidALRAzhy 在上一个链接中建议的那样,尝试清理项目并重建它。请告诉我们这是否对您有用,未来的用户可能会从您的回复中受益。如果没有,我们将进一步帮助您。
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 2020-08-15
  • 2021-05-05
  • 2016-09-28
  • 2020-11-15
  • 2022-01-08
相关资源
最近更新 更多