Search code examples
firebasefluttergoogle-cloud-firestoreflutter-freezed

Flutter Firebase How to convert DocumentSnapshot to Model Json inside a model class


I have this Firebase Document that I want to convert to a JSON and add Id to it when using it within the app.

factory Recipe.fromDocument(DocumentSnapshot doc) {
    final data = doc.data()!;
    return Recipe.fromJson(data).copyWith(id: doc.id);
  }

I get the following error enter image description here


Solution

  • Try this

    factory Recipe.fromDocument(DocumentSnapshot doc) {
        final data = doc.data()! as Map<String, dynamic>;
        return Recipe.fromJson(data).copyWith(id: doc.id);
      }
    

    According to the FlutterFire usage documentation

    DocumentSnapshot doc;
    doc.data() is of type Map<String, dynamic>;