Flatter | Firebase用户认证&;配置文件创建
我是Flatter/Firebase的新手,我想编写一个应用程序,用户可以登录/注册,然后他需要创建一个个人资料,其中包含他的姓名、年龄等信息。。。只有创建了个人资料,他才能继续查看应用程序的“主要部分” 我已经用一个有效的登录/注册页面实现了Firebase身份验证,但我现在的问题是,如何最有效地创建配置文件 当时我在这里自己创建了这个方法:Flatter | Firebase用户认证&;配置文件创建,firebase,flutter,authentication,firebase-authentication,backend,Firebase,Flutter,Authentication,Firebase Authentication,Backend,我是Flatter/Firebase的新手,我想编写一个应用程序,用户可以登录/注册,然后他需要创建一个个人资料,其中包含他的姓名、年龄等信息。。。只有创建了个人资料,他才能继续查看应用程序的“主要部分” 我已经用一个有效的登录/注册页面实现了Firebase身份验证,但我现在的问题是,如何最有效地创建配置文件 当时我在这里自己创建了这个方法: Future checkUserProfile() async{ // get snapshot from document final snap
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 Auth user UID的用户配置文件是否已经存在,如果不存在,用户将被发送到“配置文件页面”,FutureBuilder将执行上述方法,如果已经存在,他将看到应用程序的主要部分
正如我已经说过的,我自己尝试过,我想问这是否已经是一个很好的实现,或者是否有更简单更好的方法来实现它?是的,这是一个很好的实现。在我的应用程序中,我有像你一样的检查用户方法。下面的方法是一个示例。当用户未注册时,他将转发到RegisterPage,否则他将转发到主页
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('/'));
});
}
}
啊,好吧,你已经在函数中做了。我为它创建了一个额外的小部件,但它仍然应该是一样的。非常感谢分享!是的,完全没有问题,欢迎:)你能接受答案吗,或者我能帮你解决其他问题吗?