Как я могу получать данные из базы данных в реальном времени с помощью api в flutter для Интернета

# #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,),
              ],
            )
          ),
           ],
         ),
       ),
     ),
   );
 }
}

 

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