Флаттер-код для отображения данных о пожарной базе в виде списка или в построителе списков - PullRequest
0 голосов
/ 25 декабря 2018

Я занимаюсь разработкой приложения, в котором мне нужно отобразить все детали лектора, которые хранятся в Firebase с использованием list_view.Я использовал list_builder для этого.Я получаю одинаковые данные во всех представлениях списка, что означает, что все плитки содержат одинаковый идентификатор лектора.

enter image description here

enter image description here

Я пытался загрузить скриншот, ноя не могу загрузить его

вывод: 1: переменная существует:

{LEC02: {EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC02, NAME: VIGNESH, POSITION: LECTURER, PASSWORD: LEC02, PHOTO: , QUALIFICATION: BCOM, DOJ: 2018-12-24 00:00:00.000}, LEC04: {EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC04, NAME: KARTHIK, POSITION: LECTURER, PASSWORD: LEC04, PHOTO: , QUALIFICATION: MCOM, DOJ: 2018-12-26 00:00:00.000}}

2: переменная key_id:

(LEC02, LEC04, LECTURER 01, LEC03, LEC01)

3: переменные данные:

({EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC02, NAME: VIGNESH, POSITION: LECTURER, PASSWORD: LEC02, PHOTO: , QUALIFICATION: BCOM, DOJ: 2018-12-24 00:00:00.000}, {EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC04, NAME: KARTHIK, POSITION: LECTURER, PASSWORD: LEC04, PHOTO: , QUALIFICATION: MCOM, DOJ: 2018-12-26 00:00:00.000}, {EMAIL: , SEX: FEMALE, ADDRESS: , MOBILE: , ID: LECTURER 01, NAME: AA, POSITION: LECTURER, PASSWORD: LECTURER 01, PHOTO: , QUALIFICATION: KAAM, DOJ: 2018-12-25 00:00:00.000}, {EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC03, NAME: PRANEETH, POSITION: HOD, PASSWORD: LEC03, PHOTO: , QUALIFICATION: MCA, DOJ: 2018-12-25 00:00:00.000}, {EMAIL: , SEX: MALE, ADDRESS: , MOBILE: , ID: LEC01, NAME: NISHA, POSITION: LECTURER, PASSWORD: LEC01, PHOTO: , QUALIFICATION: MCOM, DOJ: 2018-12-26 00:00:00.000})

код

import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';
import 'dart:async';
import 'package:firebase_database/ui/firebase_animated_list.dart';

import '../slidelecturer.dart';
import 'dart:convert';

String lecturer_id,lecturer_name;
bool hasdata=true;
Map<dynamic,dynamic> exist;
Iterable<dynamic>key_id,data;
Widget body;


final FirebaseDatabase database = FirebaseDatabase.instance;

class viewlecturer extends StatefulWidget {
  @override
  _viewlecturerState createState() => _viewlecturerState();
}

class _viewlecturerState extends State<viewlecturer> {

 @override
 void initState(){
   print("hello");

  this.get_data();

 }

  @override
  Widget build(BuildContext context) {
    if(hasdata==false){
      body=new Container(

      child:Center(
        child: Text("LECTURER DOSE NOT EXIST",style: TextStyle(color: Colors.grey,fontWeight: FontWeight.bold,fontSize: 20),),

     ));
    }
     if(hasdata==true){
       body= new Container(
      child: ListView.builder(
         itemCount: exist==null?0:exist.length,
         itemBuilder: (BuildContext context,int index){
           return Card(
             child: new Text("${key_id}"),

           );
         },

       ),);}

    return body;

  }


   Future<String>get_data()async {

      database
          .reference()
          .child("NITTE/LECTURER").orderByValue()
          .once()
          .then((DataSnapshot snapshot) async {
            this.setState((){
              exist = snapshot.value;
            });

        if (exist == null) {
          setState(() {
            hasdata=false;      
                    });

            // confirmation();
        } else if (exist != null) {
          setState(() {
            hasdata=true; 

            key_id=exist.keys;
            data=exist.values;

          });
        }
      });
    }
  }

1 Ответ

0 голосов
/ 25 декабря 2018

Вы должны использовать StreamBuilder и предоставлять снимки из вашей базы данных в качестве потока и возвращать свой просмотр списка в компоновщике.Это позволяет вашему списку обновляться, чтобы ваш пользователь всегда имел обновленные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...