Get a single document from a Firebase Cloud Firestore collection and convert the results to a concrete model.
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class FirebaseFirestoreGetDocument extends StatelessWidget {
  final firestoreInstance = FirebaseFirestore.instance;
  Future getDocument() async {
    print("getDocument");
    //assume there is a collection called "users"
    var uid = "123123123123123123"; //the unique user id/document id
    firestoreInstance.collection("users").doc(uid).get().then((querySnapshot) {
      print("result");
      print(querySnapshot.data());
      //convert the result to a model
      var userModel = new UserModel();
      userModel.fromMap(uid, querySnapshot.data());
      print(userModel.getId());
      print(userModel.name);
    });
  }
  @override
  Widget build(BuildContext context) {
    getDocument();
    return new MaterialApp(
        home: Container(
      child: Text("running tests"),
    ));
  }
}
class UserModel {
  String _id = "";
  String name;
  UserModel({this.name});
  void fromMap(String id, Map map) {
    this._id = id;
    this.name = map["name"];
  }
  String getId() {
    return this._id;
  }
}