Flutter: Get Document from Firebase Cloud Firestore and Convert to Model

8/25/2020 10:21:58 PM

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;
  }
}