错误:名称“User”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义

Bha*_*510 1 dart dart-pub flutter flutter-dependencies flutter-layout

Dart 分析显示以下错误:

错误:未定义类“FirebaseUser”。([quizmaker] lib\services\auth.dart:7 处的 undefined_class)

错误:名称“User”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(ambigious_import 位于 [quizmaker] lib\services\auth.dart:7)

错误:名称“User”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(ambigious_import 位于 [quizmaker] lib\services\auth.dart:8)

错误:“用户”不是函数。(非函数调用位于 [quizmaker] lib\services\auth.dart:8)

错误:名称“User”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(ambigious_import 位于 [quizmaker] lib\services\auth.dart:15)

代码如下:

import 'package:firebase_auth/firebase_auth.dart';
import 'package:quizmaker/models/user.dart';

class AuthService {
  FirebaseAuth _auth = FirebaseAuth.instance;

  User _userFromFirebaseUser(FirebaseUser user){
    return user != null ? User(uid: user.uid) : null;
  }

  Future signInEmailAndPassword(String email, password) async {
    try {
      UserCredential authResult = await _auth.signInWithEmailAndPassword(
          email: email, password: password);
      User? firebaseUser = authResult.user;
      return _userFromFirebaseUser(firebaseUser);
    } catch (e) {
      print(e.toString());
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Hut*_*yad 5

import 'package:quizmaker/models/user.dart' as u;
.
.
  u.User _userFromFirebaseUser(FirebaseUser user){
    return user != null ? u.User(uid: user.uid) : null;
  }
Run Code Online (Sandbox Code Playgroud)

User该错误是因为FirebaseAuth 库以及您的自定义模型中都有一个对象。您必须指定哪一个来自您的导入。从自定义模型中将其导入为u,如上面的代码所示,当您在函数中使用它时,将其称为u.user