QuerySnapshot<T extends Object?>.fromJson constructor

QuerySnapshot<T extends Object?>.fromJson(
  1. dynamic jsonString,
  2. dynamic db
)

Creates a QuerySnapshot from JSON data.

Parameters:

  • jsonString: The JSON data to parse.

Returns: A QuerySnapshot instance.

Example:

var snapshot = QuerySnapshot.fromJson(jsonData);

Implementation

factory QuerySnapshot.fromJson(dynamic jsonString, dynamic db) {
  dynamic data = jsonString;
  QuerySnapshot qSnap = QuerySnapshot([],
  data["type"] == "dualityviewcollection" ? DualityViewColReference(helper: QueryHelper(),
      oracledb: db,
      path: data["path"]) : CollectionReference(
      helper: QueryHelper(),
      oracledb: db,
      path: data["path"])
  ,SnapshotMetadata(hasPendingWrites: false,isFromCache: false));

  List<DocumentChange> docCh = [];
  List<QueryDocumentSnapshot<T>> docsList = [];

  for (var i =0;i<data["docChanges"].length;i++) {
    docCh.add(DocumentChange.fromJson(data["docChanges"][i], db));
  }

  for (var i =0;i<data["docs"].length;i++) {
    docsList.add(QueryDocumentSnapshot.fromJson(data["docs"][i]));
  }

  qSnap._docChanges = docCh;
  qSnap._docs = docsList;
  qSnap._size = data["size"];

  qSnap.query._conditions = data["conditions"];
  qSnap.query._aggregate = data["aggregate"];
  qSnap.query._explicitOrder = data["explicitOrder"];
  qSnap.query._joins = data["joins"];
  qSnap.query._col_group = data["col_group"];
  qSnap.query._limit = data["limit"];
  qSnap.query.type = data["type"];
  return qSnap as QuerySnapshot<T>;
}