# #firebase #flutter #firebase-realtime-database #web-applications
Вопрос:
Я пытаюсь извлечь данные из базы данных firebase в реальном времени в flutter для веб-приложения. Итак, я попробовал пару способов, но не смог заставить это работать. Это мои текущие коды для извлечения данных из базы данных в реальном времени.
я пытаюсь извлечь данные в listview.
class DashboardPage extends StatefulWidget {
const DashboardPage({Key key}) : super(key: key);
@override
_DashboardPageState createState() => _DashboardPageState();
}
class _DashboardPageState extends State<DashboardPage> {
final fb = FirebaseDatabase.instance;
List<PostModels> postmodal = [];
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
var pro;
@override
void initState() {
super.initState();
pro = Provider.of<upin>(context, listen: false);
getPostList();
}
Future<void> getPostList() async {
final values = await http.get(Uri.parse(
'https://officialnasproject-default-rtdb.firebaseio.com/App/${pro.upin1}/App-Posts.json'));
var val = json.decode(values.body) as Map<String, dynamic>;
val.forEach((key, value) {
PostModels postModels = new PostModels(
value['PostContent'],
value['PostUserName'],
value['PostDate'],
value['PostUserRole'],
value['PostTitle'],
value['PostUploader'],
value['Upin'],
);
postmodal.add(postModels);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Flexible(
child: postmodal.length == 0 ? Center(
child: SelectableText("No posts yet....", style: TextStyle(fontSize: 20),),) :
ListView.builder(
itemCount: postmodal.length,
itemBuilder: (_, index) {
return CardUI(
postmodal[index].PostContent,
postmodal[index].PostUserName,
postmodal[index].PostDate,
postmodal[index].PostUserRole,
postmodal[index].PostTitle,
postmodal[index].PostUploader,
postmodal[index].Upin,
);
}),
),
),
),
);
}
Widget CardUI(String PostContent, String PostUserName, String PostDate, String PostUserRole, String PostTitle, String PostUploader, String Upin)
{
return Card(
margin: EdgeInsets.all(15),
child: GestureDetector(
onTap:(){},
child: Container(
child: Column(
children: [
Container(
child: Padding(
padding: const EdgeInsets.fromLTRB(15, 10, 15, 12),
child: Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: InkWell(
onTap: (){},
child: Text(PostUserName,),),),
SizedBox(height: 2,),
Align(
alignment: Alignment.centerLeft,
child: Text('@' PostUserRole,),),
],
),
),
),
SizedBox(height: 10,),
Container(
padding: EdgeInsets.fromLTRB(15, 15, 15, 0.0),
child: Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(PostTitle,),),
SizedBox(height: 10,),
Text(' ' ' ' ' ' PostContent, style: TextStyle(fontSize: 15,),),
SizedBox(height: 20,),
],
)
),
],
),
),
),
);
}
}
Это коды, которые я использую для извлечения и отображения данных, но я не знаю, где, почему это не работает. Может ли кто-нибудь помочь мне, это будет значить для меня много, потому что я пытаюсь решить эту проблему в течение трех дней подряд, но еще не получил ее.