flutter - 错误:名称“用户”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义
问题描述
Dart 分析显示以下错误:
错误:未定义的类“FirebaseUser”。([quizmaker] lib\services\auth.dart:7 处的 undefined_class)
错误:名称“用户”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(在 [quizmaker] lib\services\auth.dart:7 的 ambiguous_import)
错误:名称“用户”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(在 [quizmaker] lib\services\auth.dart:8 的 ambiguous_import)
错误:“用户”不是函数。(invocation_of_non_function 在 [quizmaker] lib\services\auth.dart:8)
错误:名称“用户”在库“package:firebase_auth/firebase_auth.dart”和“package:quizmaker/models/user.dart”中定义。(在 [quizmaker] lib\services\auth.dart:15 的 ambiguous_import)
代码如下:
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());
}
}
}
解决方案
import 'package:quizmaker/models/user.dart' as u;
.
.
u.User _userFromFirebaseUser(FirebaseUser user){
return user != null ? u.User(uid: user.uid) : null;
}
该错误是因为User
FirebaseAuth 库中有一个对象,并且在您的自定义模型中也有一个对象。您必须从您的进口中指定哪个是哪个。将自定义模型中的一个导入为u
,如上面的代码中所示,当您在函数中使用它时,将其称为u.user
.
推荐阅读
- python - 无法检测表示 csv 文件中字符串的变量是否等于另一个字符串
- node.js - [ERR_HTTP_HEADERS_SENT]:在 Express 中将标头发送到客户端后无法设置标头
- azure - Azure 权限:无权执行此操作
- python - numpy 遗传算法选择:轮盘赌 vs. 随机通用采样
- javascript - 属性在对象中,但显示为未定义
- postgresql - 如何在聚合中包含下一组的第一行?
- phpstorm - 如何阻止 PhpStorm 从变量名中去除单引号
- c - 由于“没有这样的文件或目录”,无法创建共享库
- powershell - Powershell import-csv $variable 正确为空
- encryption - 如何构建高度安全的端到端加密 React Native 消息传递应用程序