For Flutterflow firestore collection getting exception NoSuchMethodError: Class 'RegisteredDevicesRecord' has no instance method 'toJson' for autogenerated code

Database & APIs

I have created Firestore Collection as below

Flutterflow has generated below code

class RegisteredDevicesRecord extends FirestoreRecord {
RegisteredDevicesRecord._(
DocumentReference reference,
Map<String, dynamic> data,
) : super(reference, data) {
_initializeFields();
}

// "serial_number" field.
String? serialNumber;
String get serialNumber =>
serialNumber ?? '';
bool hasSerialNumber() => _serialNumber != null;

// "user_name" field.
String? userName;
String get userName =>
userName ?? '';
bool hasUserName() => _userName != null;

// "locker_name" field.
String? lockerName;
String get lockerName =>
lockerName ?? '';
bool hasLockerName() => _lockerName != null;

// "userId" field.
String? userId;
String get userId =>
userId ?? '';
bool hasUserId() => _userId != null;

// "geofence_data" field.
List? geofenceData;
List get geofenceData =>
geofenceData ?? const [];
bool hasGeofenceData() => _geofenceData != null;

// "gps_timer" field.
String? gpsTimer;
String get gpsTimer =>
gpsTimer ?? '';
bool hasGpsTimer() => _gpsTimer != null;

// "live_location" field.
LatLng? liveLocation;
LatLng? get liveLocation =>
liveLocation;
bool hasLiveLocation() => _liveLocation != null;

// "reserved1" field.
String? reserved1;
String get reserved1 =>
reserved1 ?? '';
bool hasReserved1() => _reserved1 != null;

// "reserved2" field.
String? reserved2;
String get reserved2 =>
reserved2 ?? '';
bool hasReserved2() => _reserved2 != null;

// "battery" field.
String? battery;
String get battery =>
battery ?? '';
bool hasBattery() => _battery != null;

// "reserved3" field.
String? reserved3;
String get reserved3 =>
reserved3 ?? '';
bool hasReserved3() => _reserved3 != null;

void initializeFields() {
serialNumber = snapshotData['serial_number'] as String?;
_userName = snapshotData['user_name'] as String?;
_lockerName = snapshotData['locker_name'] as String?;
_userId = snapshotData['userId'] as String?;
_geofenceData = getStructList(
snapshotData['geofence_data'],
GeofenceStruct.fromMap,
);
_gpsTimer = snapshotData['gps_timer'] as String?;
_liveLocation = snapshotData['live_location'] as LatLng?;
_reserved1 = snapshotData['reserved1'] as String?;
_reserved2 = snapshotData['reserved2'] as String?;
_battery = snapshotData['battery'] as String?;
_reserved3 = snapshotData['reserved3'] as String?;
}

static CollectionReference get collection =>
FirebaseFirestore.instance.collection('registered_devices');

static Stream getDocument(DocumentReference ref) =>
ref.snapshots().map((s) => RegisteredDevicesRecord.fromSnapshot(s));

static Future getDocumentOnce(
DocumentReference ref) =>
ref.get().then((s) => RegisteredDevicesRecord.fromSnapshot(s));

static RegisteredDevicesRecord fromSnapshot(DocumentSnapshot snapshot) =>
RegisteredDevicesRecord._(
snapshot.reference,
mapFromFirestore(snapshot.data() as Map<String, dynamic>),
);

static RegisteredDevicesRecord getDocumentFromData(
Map<String, dynamic> data,
DocumentReference reference,
) =>
RegisteredDevicesRecord._(reference, mapFromFirestore(data));

@OverRide
String toString() =>
'RegisteredDevicesRecord(reference: ${reference.path}, data: $snapshotData)';

@OverRide
int get hashCode => reference.path.hashCode;

@OverRide
bool operator ==(other) =>
other is RegisteredDevicesRecord &&
reference.path.hashCode == other.reference.path.hashCode;
}

Map<String, dynamic> createRegisteredDevicesRecordData({
String? serialNumber,
String? userName,
String? lockerName,
String? userId,
String? gpsTimer,
LatLng? liveLocation,
String? reserved1,
String? reserved2,
String? battery,
String? reserved3,
}) {
final firestoreData = mapToFirestore(
<String, dynamic>{
'serial_number': serialNumber,
'user_name': userName,
'locker_name': lockerName,
'userId': userId,
'gps_timer': gpsTimer,
'live_location': liveLocation,
'reserved1': reserved1,
'reserved2': reserved2,
'battery': battery,
'reserved3': reserved3,
}.withoutNulls,
);

return firestoreData;
}

class RegisteredDevicesRecordDocumentEquality
implements Equality {
const RegisteredDevicesRecordDocumentEquality();

@OverRide
bool equals(RegisteredDevicesRecord? e1, RegisteredDevicesRecord? e2) {
const listEquality = ListEquality();
return e1?.serialNumber == e2?.serialNumber &&
e1?.userName == e2?.userName &&
e1?.lockerName == e2?.lockerName &&
e1?.userId == e2?.userId &&
listEquality.equals(e1?.geofenceData, e2?.geofenceData) &&
e1?.gpsTimer == e2?.gpsTimer &&
e1?.liveLocation == e2?.liveLocation &&
e1?.reserved1 == e2?.reserved1 &&
e1?.reserved2 == e2?.reserved2 &&
e1?.battery == e2?.battery &&
e1?.reserved3 == e2?.reserved3;
}

@OverRide
int hash(RegisteredDevicesRecord? e) => const ListEquality().hash([
e?.serialNumber,
e?.userName,
e?.lockerName,
e?.userId,
e?.geofenceData,
e?.gpsTimer,
e?.liveLocation,
e?.reserved1,
e?.reserved2,
e?.battery,
e?.reserved3
]);

@OverRide
bool isValidKey(Object? o) => o is RegisteredDevicesRecord;
}

Now whenever i try to pass this parameter while navigating to some other screen

Exception has occurred.
NoSuchMethodError (NoSuchMethodError: Class 'RegisteredDevicesRecord' has no instance method 'toJson'.
Receiver: Instance of 'RegisteredDevicesRecord'
Tried calling: toJson())

I understand there is no toJson method in RegisteredDevicesRecord class ,i dont want to change as it is auto generated

This was working fine till now on both Flutter Flow Test Mode and Local Code download as well but suddenly (19March) it started giving above exception and error as below in Test Mode

What have you tried so far?

Tried both locally and in test mode, able to see issue on both and in Web based Test Mode gettings error as follows

FlutterFlow v5.2.9 released March 14, 2025

Flutter version is 3.27.3

Did you check FlutterFlow's Documentation for this topic?
No
1