Firestore.instance.collection (collectio_name) .document (document_name) .get (), не получает никакого значения из базы Firebase в Flutter - PullRequest
0 голосов
/ 09 февраля 2020

Итак, я пытаюсь извлечь данные из базы данных с помощью DocumentSnapshot. Я хочу напечатать значение документа ['display_name']

  • Collection = user_data
  • document = 3vIf92LIJQ7pu7MpUwH1
  • display_name = элемент документа.

Вывод: «Произошла ошибка» на экране

     class _HomeViewState extends State<HomeView> {
         Future<DocumentSnapshot> getDocument() async {
             return Firestore.instance
            .collection('user_data')
            .document('3vIf92LIJQ7pu7MpUwH1')
            .get();
          }

     @override
        Widget build(BuildContext context) {

           return Container(
           child: Center(
           child: FutureBuilder(
           future: getDocument(),
              builder: (BuildContext context, AsyncSnapshot snapshot) {
      if (snapshot.hasError) return Text('Error has occured');
      if (snapshot.connectionState == ConnectionState.waiting) {
        return CircularProgressIndicator();
      }
      if (snapshot.hasData) {
        return Column(
          children: <Widget>[
            Text(snapshot.data['display_name']),
          ],
        );
      }

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

Возможно, у вас ошибка из-за правил безопасности вашего пожарного депо. Кроме того, вам нужно получить доступ к snapshot.data.data ['display_name'] instread из snapshot.data ['display_name'], чтобы получить значение из firestore.

 if (snapshot.hasData) {
    return Column(
      children: <Widget>[
        Text(snapshot.data.data['display_name']),
      ],
    );
  }
0 голосов
/ 09 февраля 2020

Если hasError равно true, вы захотите напечатать snapshot.error, чтобы узнать, в чем проблема:

if (snapshot.hasError) return Text('Error has occurred: ${snapshot.error}');
...