Home > Back-end >  I'm getting a blank screen instead of firestore data
I'm getting a blank screen instead of firestore data

Time:07-22

my main code:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:day_event_viewer/services/firestore.dart';
import 'package:flutter/material.dart';

class TodayEventScreen extends StatefulWidget {
  @override
  _TodayEventScreenState createState() => _TodayEventScreenState();
}

class _TodayEventScreenState extends State<TodayEventScreen> {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: StreamBuilder(
          stream: getUserDatas(),
          builder:
              (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
            if (!snapshot.hasData) {
              return const Text('loading data');
            } else if (snapshot.hasData) {
              return ListView(
                children: snapshot.data!.docs.map((DocumentSnapshot document) {
                  Map<String, dynamic> data =
                      document.data()! as Map<String, dynamic>;
                  return ListTile(
                    title: Text(data['name']),
                    // subtitle: Text(data['company']),
                  );
                }).toList(),
              );
            }
            return const Text('somethng\'s wrong');
          }),
    );
  }
}

the stream getUserDatas() mentioned above:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:day_event_viewer/screens/add_screen.dart';

Stream<QuerySnapshot> getUserDatas() async* {
  final uid = await getUid();
  yield* FirebaseFirestore.instance
      .collection('usersdatas')
      .doc(uid)
      .collection('profile')
      .where('date', isEqualTo: DateTime.now().day)
      .snapshots();
}

when I comment the code ".where('date', isEqualTo: DateTime.now().day)" 'above 4 lines' it's working fine so i think maybe my querying is the problem but i don't know how to fix it.

CodePudding user response:

try this

title: Text(document.get('name')),

CodePudding user response:

you should put else keyword before this line.

return const Text('somethng\'s wrong');

  • Related