получение ошибки перед загрузкой данных из Firestore во флаттере - PullRequest
0 голосов
/ 04 августа 2020

Здесь, когда я пытаюсь загрузить данные в свое приложение flutter, перед загрузкой данных он выдает ошибку в течение 1 секунды, а затем отображает данные, вот ошибка: введите описание изображения здесь

вот мой код:

  class MapScreenState extends State<DashboardPage> {

  Stream<DocumentSnapshot> getData() async*{
    var user = await FirebaseAuth.instance.currentUser();
    yield* Firestore.instance.collection('Profile').document(user.uid).snapshots();
  }
  @override
  void initState() {
    super.initState();

    getData();//until this is completed user stays null we can use it to check whether it's loaded
  }

  @override
  Widget build(BuildContext context) {

    return StreamBuilder(
      stream: getData(),
      builder: (context, snapshot) {

        if (snapshot.hasError) {
          return new showProfile(
            name: "anonymous",
            email: "null",
            pin: "null",
            address: "null",
          );
        }else {
          var userDocument = snapshot.data;
          return new showProfile(
            name: userDocument['name'],
            email: userDocument["email"],
            pin: userDocument["pin"],
            address: userDocument["address"],
          );
        }

      },
    );
  }
}

Как я могу получить данные, не показывая ошибки?

1 Ответ

1 голос
/ 05 августа 2020

Где-то в вашем коде есть виджет Text, которому перед загрузкой строки передается строка из firestore. Попробуйте сделать это:

...

Text(stringFromFirestore ?? ''),

...

В dart оператор ?? проверяет, является ли первое значение (stringFromFirestore) нулевым, и если это не так, он возвращает первое значение, но если это так, оно возвращает второе значение.

...