Получатель 'data' был вызван на нуль - PullRequest
0 голосов
/ 13 апреля 2019

Я хочу прочитать данные из документа Firestore, но выдает ошибку.

Вот код:

@override
  Widget build(BuildContext context) {
     final bloc = BlocProvider.of<AuthBloc>(context);
     DocumentSnapshot doc;
    return Scaffold(
      appBar: AppBar(
          title: Text("Your account"), backgroundColor: Colors.blueGrey[900]),
      body: Container(
          color: Colors.blueGrey[800],
          child: Form(
            key: _formKey,
            child: ListView(
              children: <Widget>[
                AccountImage(),
                ListTile(
                  leading: Icon(Icons.account_box, color: Colors.white),
                  title: TextField(
                    decoration: InputDecoration(
                      fillColor: Colors.white,
                      hintText: '${doc.data['name']}',
                      hintStyle: TextStyle(color: Colors.white)
                    ),

Screenshot of the error

1 Ответ

1 голос
/ 13 апреля 2019

Если вы хотите получить доступ к одному документу в хранилище, используйте FutureBuilder. Вы не указываете, где вы хотите получить свой документ в пожарном депо. Вам необходимо получить DocumentSnapshot из хранилища через Future (или Stream).

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class FutureExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    return FutureBuilder(
        // This assumes you have a project on Firebase with a firestore database.
        future: Firestore.instance.collection("some-path").document("some-id").get(),
        initialData: null,
        builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
          if(snapshot.data == null){
            return CircularProgressIndicator();
          }

          DocumentSnapshot doc = snapshot.data;
          return Text(doc.data['name']);
        });
  }
}

Вы можете найти пример в репозитории cloud_firestore полезным, если вы не настроили свое приложение: https://github.com/flutter/plugins/blob/master/packages/cloud_firestore/example/lib/main.dart

...