【发布时间】:2021-06-01 04:54:55
【问题描述】:
我想检查一下用户是否已经填写了注册表:
这是我的 connectionState 代码:
class LandingPage extends StatelessWidget {
// final Geolocator _geolocator = Geolocator()..forceAndroidLocationManager;
@override
Widget build(BuildContext context) {
final auth = Provider.of<AuthBase>(context, listen: false);
return StreamBuilder<User>(
stream: auth.onAuthStateChanged,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.active) {
User user = snapshot.data;
if (user == null) {
return SignInPage();
} else {
// _geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.best)
MatchEngine.instance.initialise(user.uid);
return Chat();
}
} else {
return Scaffold(
body: MyAppsCircularProgressIndicator(title: "MyApp",),
);
}
},
);
}
}
此代码适用于连接状态。
我想在第一个代码中添加:
if (not signed in) {
show sign in page
} else {
if (not registered)
show register page
else
show home page
}
或
StreamBuilder(
stream: auth.authStateChanges()
builder: (_, snapshot) {
// check connectionState too
if (snapshot.hasData) {
StreamBuilder(
stream: database.userData() // this is a stream you create that reads from `userData/$uid` or similar
builder: (_, snapshot) {
if (snapshot.hasData) {
return HomePage()
} else {
return RegisterPage()
}
}
)
} else {
return SignInPage()
}
}
)
我想将最后一个代码添加到上一个代码中,以获得我的连接状态 + 重定向到 RegisterPage。
我尝试了一切,但无济于事......有人可以帮助我吗?谢谢
【问题讨论】:
标签: flutter google-cloud-firestore google-signin