我有一个简单的Provider类:
import 'package:flutter/foundation.dart';
class AppState with ChangeNotifier {
bool _isLoggedIn = false;
bool get isLoggedIn => _isLoggedIn;
set isLoggedIn(bool newValue) {
_isLoggedIn = newValue;
notifyListeners();
}
}
在登录类中,如果登录成功,我只需将isLoggedIn
设置为true:
void _signInWithEmailAndPassword(appState) async {
try {
final FirebaseUser user = await _auth.signInWithEmailAndPassword(
...
);
if (user != null) {
appState.isLoggedIn = true;
appState.userData = user.providerData;
...
}
} catch (e) {
setState(() {
_errorMessage = e.message;
});
}
}
即使成功登录后,按Android上的“后退”按钮也可以使用户返回此页面。因此,我想知道是否可以在Provider.of
之前访问Widget build
并重定向用户,如果{{1 }}是isLoggedIn
。
现在我有类似的东西:
true
这只是登录视图的一种用例,但我确定可以在其他情况下使用此功能。
答案 0 :(得分:1)
如果您打算在整个应用程序中使用FirebaseUser或“登录用户”,我建议您在应用程序的最高级别上添加提供程序。例子
{{1}}
参考