watchCollection static method 
    
    
    
  Implementation
  static Stream watchCollection({
  required String collectionName,
  required String databaseName,
  List<String>? ids,
  String? filter,
  bool asObjectIds = true,
}) {
  Stream nativeStream;
  if (kIsWeb) {
//      Stream<Event> jsStream =
//          document.on["watchEvent.$databaseName.$collectionName"];
    var jsStream = StreamInterop.getNativeStream(
        "watchEvent.$databaseName.$collectionName");
    // ignore: close_sinks
    var controller = StreamController<String>.broadcast();
    // migrating events from the js-event to a dart event
    jsStream.listen((event) {
      Object? eventDetail = (event as CustomEvent).detail;
      var map = json.decode("${eventDetail ?? '{}'}");
      // if (map['_id'] is Map == true) {
      //   map['_id'] = ObjectId.parse(map['_id']);
      // }
      print(jsonEncode(map));
      controller.add(jsonEncode(map));
    });
    nativeStream = controller.stream;
  } else {
    nativeStream = StreamInterop.getNativeStream({
      "handler": "watchCollection",
      "db": databaseName,
      "collection": collectionName,
      "filter": filter,
      "ids": ids,
      "as_object_ids": asObjectIds,
    });
  }
  return nativeStream;
  // continuous stream of events from platform side
//    return _streamsChannel.receiveBroadcastStream({
//      "handler": "watchCollection",
//      "db": databaseName,
//      "collection": collectionName,
//      "filter": filter,
//      "ids": ids,
//      "as_object_ids": asObjectIds,
//    });
}