【发布时间】:2021-01-29 22:59:04
【问题描述】:
我创建了一个带有 Firestore 支持的 Google 登录应用程序,最近我将所有依赖项更新到了新版本。这里老代码有问题不知道是什么问题。
Future<String> getCurrentUser() async {
var user = await _auth.currentUser();
if (user == null) {
return null;
} else {
return user.uid;
}
}
在 _auth.currentUser() 附近显示错误;错误是The expression doesn't evaluate to a function, so it can't be invoked. 我已经搜索过但没有任何效果。这是第一个问题。
第二个问题出现在rxdart 包中。由于不支持新软件包Observable 并在互联网上搜索并尝试使用Stream 但它们不起作用。
rxdart 问题的源代码在这里。
class AuthService {
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseFirestore _db = FirebaseFirestore.instance;
Stream<User> user;
Stream<Map<String, dynamic>> profile;
String uuid;
AuthService() {
Stream<User> user = Observable(_auth.authStateChanges);
profile = user.switchMap((User u) {
if (u != null) {
return _db
.collection('users')
.doc(u.uid)
.snapshots()
.map((snap) => snap.data);
} else {
return Observable.just({});
}
});
}
}
它在return Observable.just({}); 附近显示错误,并且此行出现下一个问题Stream<User> user = Observable(_auth.authStateChanges);
帮我解决这个问题并帮助我理解我的问题。
【问题讨论】:
-
第一个问题的答案如下。我建议为您的其他问题打开第二个问题,因为它不相关(而且我不立即知道答案)。
标签: firebase flutter dart firebase-authentication google-signin