【问题标题】:How to show firebase cloud data as tables and show images?如何将 Firebase 云数据显示为表格并显示图像?
【发布时间】:2023-03-18 00:18:01
【问题描述】:

[![在此处输入图像描述][1]][1] 我需要在这里这样做: [1]:https://i.stack.imgur.com/bNdZ3.png

但我做不到。我尝试了一些东西,但它不起作用。这是我的 main.dart 下面。我创建了用于显示图像的 showImage 方法,我还通过 Image.network(url); 应用了它。代码,但它不起作用,所以我评论了它。

import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.red,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  var url;
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  void showImage() async {
    final ref = FirebaseStorage.instance.ref().child('erkekyuz');
// no need of the file extension, the name will do fine.
    url = await ref.getDownloadURL();
    print(url);
  }

  Widget _buildListItem(BuildContext context, DocumentSnapshot document) {
    String mezunD;
    if (document.data()['mezunDurumu'] == false) {
      mezunD = "mezun değil";
    }
    if (document.data()['mezunDurumu'] == true) {
      mezunD = "mezun değil";
    }
    var listTile = ListTile(
      title: Column(
        children: [
          Expanded(
            child: Text(
              "Ad Soyad:    " + document.data()['adSoyad'],
            ),
          ),
          Expanded(
            child: Text(
              "Yaş:    " + document.data()['yas'].toString(),
            ),
          ),
          Expanded(
            child: Text(
              "Doğum Tarihi:    " + document.data()['dogumTarihi'],
            ),
          ),
          Expanded(
            child: Text("Mezun Durumu:    " + mezunD),
          ),
          //Image.network(url), 
          //this didn't work somehow.
        ],
      ),
    );
    return listTile;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Öğrenci Durumu"),
      ),
      body: StreamBuilder(
          stream: FirebaseFirestore.instance.collection('tablolar').snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) return const Text('Loading...');
            return ListView.builder(
              itemExtent: 100.0,
              itemCount: snapshot.data.documents.length,
              itemBuilder: (context, index) =>
                  _buildListItem(context, snapshot.data.documents[index]),
            );
          }),
    );
  }
}

【问题讨论】:

    标签: firebase flutter google-cloud-firestore google-cloud-functions google-cloud-storage


    【解决方案1】:

    您的 url 变量是否显示任何值? 像这样调用你的 showImage() 方法来加载图像。

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

    为了显示图像,您可以使用:https://pub.dev/packages/cached_network_image

    【讨论】:

    • 不,它没有,但因为我再次检查,这是因为我从未调用过 showImage 所以它为空.. 我尝试以正常方式调用 showImage 但没有工作。要试试这个。我应该把它放在哪里?在孩子身上?
    • url != null?Expanded( child: CachedNetworkImage( imageUrl: url, placeholder: (context, url) => CircularProgressIndicator(), errorWidget: (context, url, error) => Icon(Icons .error), ), ):container(), **反正 errorWidget: (context, url, error) => Icon(Icons.error) 如果发现 null 就会处理
    猜你喜欢
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多