В нем есть функция getQuizData (), которая получает данные из Firebase, но когда я пытаюсь просмотреть эти данные на экране через построитель списка, выдается ошибка (У класса '_CompactIterable' нет метода экземпляра '[ ] '.) (Получатель: Экземпляр' _CompactIterable ') . Я старался изо всех сил, но не могу решить эту проблему. Я новичок, чтобы трепетать, пожалуйста, помогите мне решить эту проблему
В нем есть функция getQuizData (), которая получает данные из Firebase, но когда я пытаюсь просмотреть эти данные на экране через построитель списка, он дает ошибка (у класса '_CompactIterable' нет метода экземпляра '[]'.) (Получатель: экземпляр _CompactIterable ') . Я старался изо всех сил, но не могу решить эту проблему. Я новичок, чтобы трепетать, пожалуйста, помогите мне решить эту проблему
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class MainQuiz extends StatefulWidget{
static final routName = "Quizezdata";
@override
State createState() {
// TODO: implement createState
return Quizdata();
}
}
class Quizdata extends State{
String Stdname;
String Stdcls;
String Stdhouse;
String Stdsch;
String Stdsbj;
String Stdsec;
int count=0;
Future getQuizData() async{
// print(student_naame.text);
String url = "https://quizapp-be292.firebaseio.com/quizez.json";
try {
final responce = await http.get(url);
// print(responce.body);
final extractData = json.decode(responce.body) as Map;
print("HAHAHAHAHAHHA");
return extractData.values;
} catch (error) {
print(error);
}
// if(count ==0){
// showAlert(ctx);
// }
}
void showAlert(BuildContext ctx){
var alerBox = AlertDialog(
title: Text("No such user exist"),
);
showDialog(
context: ctx,
builder: (_){
return alerBox;
}
);
}
@override
Widget build(BuildContext context) {
var routArgs = ModalRoute.of(context).settings.arguments as Map;
Stdname = routArgs['StudentNme'];
Stdcls = routArgs['StudentClas'];
Stdsec = routArgs['StudentSec'];
Stdhouse = routArgs['StudentHuse'];
Stdsch = routArgs['StudentSch'];
Stdsbj = routArgs['StudentSbj'];
// TODO: implement build
return
Scaffold(
appBar: AppBar(
title: Text("Quizez"),
),
body:SingleChildScrollView(
child:Container(
// height: double.infinity,
child: FutureBuilder(future:getQuizData(),builder: (_,snapshot){
if(snapshot.connectionState == ConnectionState.waiting){
return Center(
child: Text("Loading"),
);
}else{
return Container(
width: double.infinity,
height: 440,
child:ListView.builder(
itemBuilder: (_,index){
return ListTile(
title: Text(snapshot.data[index].key),
);
},
itemCount: snapshot.data.length,
),
);
}
})
),
)
);
}
}