I'm making a mobile app using flutter. My collections and dto have all been defined and it runs perfectly when I'm building it using dart run build_runner build --delete-conflicting-outputs.
I know it isn't caused by the pubspec.yaml
Now I'm trying to retrieve the data but it seems that the getter users isn't defined for the type AppSchema according to IntelliJ.
Here is the error I get and the line causing it:
error: The getter 'users' isn't defined for the type 'AppSchema'. (undefined_getter at [celestia_drive] lib\screens\drives_screen.dart:45)
final snap = await appSchema.users.doc(user.uid).drives.get();
I don't understand why it does that.
Here is my schema and DTO:
schema.dart
import 'package:firestore_odm/firestore_odm.dart';
import 'package:dto/models/user.dart';
import 'package:dto/models/drive.dart';
import 'package:dto/models/folder.dart';
import 'package:dto/models/file.dart';
part 'schema.odm.dart';
@Schema()
@Collection('users')
@Collection('users/*/drives')
@Collection('users/*/drives/*/folders')
@Collection('users/*/drives/*/files')
@Collection('users/*/drives/*/folders/*/folders')
@Collection('users/*/drives/*/folders/*/files')
final appSchema = _$AppSchema;
user.dart
import 'dart:ui';
import 'package:firestore_odm/firestore_odm.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'user.freezed.dart';
part 'user.g.dart';
@freezed
abstract class User with _$User {
const factory User({
@DocumentIdField() required String id,
required String firstName,
required String lastName,
required String email,
required String imageUrl,
}) = _User;
factory User.fromJson(Map json) => _$UserFromJson(json);
}
drive.dart
import 'package:firestore_odm/firestore_odm.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'drive.freezed.dart';
part 'drive.g.dart';
@freezed
abstract class Drive with _$Drive {
const factory Drive({
@DocumentIdField() required String id,
required String driveEmail,
required int elemNb,
}) = _Drive;
factory Drive.fromJson(Map json) => _$DriveFromJson(json);
}
folder.dart
import 'package:firestore_odm/firestore_odm.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'folder.freezed.dart';
part 'folder.g.dart';
@freezed
abstract class Folder with _$Folder {
const factory Folder({
@DocumentIdField() required String id,
required String folderName,
required DateTime creationDate,
required DateTime lastModificationDate,
required int elementsNb,
}) = _Folder;
factory Folder.fromJson(Map json) => _$FolderFromJson(json);
}
file.dart
import 'package:firestore_odm/firestore_odm.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'file.freezed.dart';
part 'file.g.dart';
@freezed
abstract class File with _$File {
const factory File({
@DocumentIdField() required String id,
required String fileName,
required DateTime creationDate,
required DateTime lastModificationDate,
required String dataUrl,
}) = _File;
factory File.fromJson(Map json) => _$FileFromJson(json);
}
Does anyone know what I'm dealing with?