我正在尝试实现简单的身份验证检查,以决定是转到一页还是另一页,但是检查效果不佳。 有什么建议吗?
// module structure that bundled with webpack
(function() {
var module = { /* module code */ }
define('MODULE_NAME', module);
})();
// code to load webpack bundle
var modules = ['MODULE_NAME'];
reqObject.bundles['PATH_TO_WEBPACK_BUNDLE'] = modules;
require(modules, function () {
// NOT BEING CALLED
});
requirejs.onError = function() { debugger; }
编辑:我也尝试过:
_isAuth = false
@override
void initState() {
if(FirebaseAuth.instance.currentUser() !=null){
_isAuth = true;
}
super.initState();
}
@override
Widget build(BuildContext context) {
return ScopedModel<CProductModel>(
model: _model,
child: MaterialApp(
routes: {
'/': (BuildContext context) =>
!_isAuth ? LoginPage() : Products(_model),
应用内部的路由似乎有效,但是如果我靠近应用并每次在登录屏幕中出现时都会再次出现
答案 0 :(得分:0)
FirebaseAuth.instance.currentUser()
将提供一个Future对象,因此当您在以下位置使用
@override
void initState() {
if(FirebaseAuth.instance.currentUser() !=null){
_isAuth = true;
}
super.initState();
}
此处FirebaseAuth.instance.currentUser()提供了将来的对象,它将继续执行,执行不会停止。 当Future对象返回一个对象时,您的执行已经完成。
而不是尝试使用这种方式
FirebaseAuth.instance.currentUser().then((_firebaseUser){
if(_firebaseUser!=null)
{
setState(() {
_isAuth=true
});
}
});