参数类型 'Object' 无法分配给参数类型 'Map<String, dynamic>'

The argument type 'Object' can't be assigned to the parameter type 'Map<String, dynamic>'

我无法在返回 userData 时消除此错误。它说--“参数类型 'Object' 不能分配给参数类型 'Map<String, dynamic>'”。

Future<User?> getUser({required String userId}) async {
    log.i('userId:$userId');

    if (userId.isNotEmpty) {
      final userDoc = await usersCollection.doc(userId).get();
      if (!userDoc.exists) {
        log.v('We have no user with id $userId in our database');
        return null;
      }

      final userData = userDoc.data();
      log.v('User found. Data: $userData');

      return User.fromJson(userData!); // This is where the error comes
    } else {
      throw FirestoreApiException(
          message:
              'Your userId passed in is empty. Please pass in a valid user if from your Firebase user.');
    }
  }

下面是我的用户模型,我在开发依赖项中使用 json_serializable: ^6.2.0freeze: ^2.0.3+1,也在 pubspec.yaml 文件的依赖项中使用 freezed_annotation: ^2.0.3json_annotation: ^4.5.0。我不知道哪里出了问题。有人,请帮我解决这个问题。

import 'package:freezed_annotation/freezed_annotation.dart';

part 'application_models.freezed.dart';
part 'application_models.g.dart';

@freezed
class User with _$User {
  factory User({
    required String id,
    String? email,
  }) = _User;

  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}

假设您使用的是 Firestore,您需要将从 userDoc.data() 返回的对象转换为 Map<String, dynamic>

final userData = userDoc.data() as Map<String, dynamic>;

这是文档中的示例:https://firebase.google.com/docs/firestore/query-data/get-data#get_a_document