我是Flutter / Firebase的新手,我想编写一个应用程序,使用户可以登录/注册,然后他需要使用自己的信息(例如姓名,年龄...)创建个人资料。个人资料,他应该可以继续查看应用的“主要部分”。
我已经通过有效的登录/注册页面实现了Firebase Auth,但现在的问题是,如何最有效地创建Profile东西。
此刻,我自己在这里创建了此方法:
Future checkUserProfile() async{
// get snapshot from document
final snapShot = await Firestore.instance.collection('profiles').document(uid).get();
if(snapShot == null || !snapShot.exists){
User.gotProfile = false;
} else {
User.gotProfile = true;
}
此方法正在检查具有Firebase身份验证用户UID的用户配置文件是否存在,如果不存在,则将使用执行以上方法的FutureBuilder将用户发送到“ ProfilePage”,如果已经存在,他将看到该应用程序的主要部分。
正如我已经说过的,我自己尝试过,我想问一下这是否已经是一个很好的实现,或者是否有更简便,更好的方法呢?
答案 0 :(得分:1)
是的,这是一个很好的实现。在我的应用程序中,我有与您一样的check User方法。以下方法是一个示例。当用户未注册时,他转发到RegisterPage,否则他转发到MainPage。
checkUserAlreadyExists(FirebaseUser user) async {
final userData = await Firestore.instance.collection('users').document(user.uid).get();
if (userData == null || !userData.exists) {
setState(() {
Navigator.pushAndRemoveUntil(context,
MaterialPageRoute(builder: (BuildContext context) => RegisterPage()), ModalRoute.withName('/'));
});
} else {
setState(() {
Navigator.pushAndRemoveUntil(context,
MaterialPageRoute(builder: (BuildContext context) => MainPage()), ModalRoute.withName('/'));
});
}
}