【发布时间】:2020-12-14 14:27:58
【问题描述】:
这里是 auth.dart
class AuthService implements AuthImplementaion {
final FirebaseAuth _auth = FirebaseAuth.instance;
User _userFromFirebaseUser(FirebaseUser user) {
return user != null ? User(uid: user.uid) : null;
}
Stream<User> get user {
return _auth.onAuthStateChanged
//.map((FirebaseUser user) => _userFromFirebaseUser(user));
.map(_userFromFirebaseUser);
}
Future signInWithEmailAndPassword(String email, String password) async {
try {
UserCredential result = await _auth.signInWithEmailAndPassword(
email: email, password: password);
FirebaseUser user = result.user;
return user;
} catch (error) {
print(error.toString());
return null;
}
}
Future registerWithEmailAndPassword(String email, String password) async {
try {
UserCredential result = await _auth.createUserWithEmailAndPassword(
email: email, password: password);
// ignore: deprecated_member_use
FirebaseUser user = result.user;
return _userFromFirebaseUser(user);
} catch (error) {
print(error.toString());
return null;
}
}
Future signOut() async {
try {
return await _auth.signOut();
} catch (error) {
print(error.toString());
return null;
}
}
}
user.dart
class User {
final String uid;
User({this.uid});
}
这是我遇到的错误。
名称“用户”在库中定义 'package:example/model/user.dart' 和 '包:firebase_auth/firebase_auth.dart'。 尝试对其中一个导入指令使用“作为前缀”,或者对除一个导入之外的所有指令隐藏名称。
【问题讨论】:
-
User在两个地方定义,错误消息暗示你已经导入了两个地方。选择一个。 -
导入 'package:example/model/user.dart';导入“包:firebase_auth/firebase_auth.dart”;这是我正在使用的两个包。我已经定义了用户模型以在任何我想要的地方访问用户。
-
...好的。您不能两次导入相同的名称。
-
我知道,但是当我将名称 user 更改为 myUser 时,它会显示错误 -> type '(FirebaseUser) => MyUser' is not a subtype of type '(User) => MyUser'
标签: android firebase flutter dart firebase-authentication