颤振 | Firebase 用户身份验证和配置文件创建
Posted
技术标签:
【中文标题】颤振 | Firebase 用户身份验证和配置文件创建【英文标题】:Flutter | Firebase User Authentication & Profile creation 【发布时间】:2020-10-17 08:58:37 【问题描述】:我是 Flutter/Firebase 的新手,我想编写一个用户可以登录/注册的应用程序,然后他需要使用他的姓名、年龄等信息创建个人资料......并且只有在他创建了自己的profile,他应该能够继续并查看应用程序的“主要部分”。
我已经使用有效的登录/注册页面实现了 Firebase 身份验证,但我现在的问题是,如何最有效地创建个人资料。
目前我在这里自己创建了这个方法:
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 用户 UID 的用户配置文件是否已经存在,如果不存在,用户将被发送到“ProfilePage”,FutureBuilder 执行上述方法,如果它已经存在,他将看到应用程序的主要部分。
正如我已经说过的,我自己尝试过,我想问一下这是否已经是一个很好的实现,或者是否有更简单更好的方法来做到这一点?
【问题讨论】:
【参考方案1】:是的,这是一个很好的实现。在我的应用程序中,我有像您一样的检查用户方法。以下方法是一个示例。当用户未注册时,他转发到 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('/'));
);
【讨论】:
啊,好吧,你已经在函数中做了。我为它创建了一个额外的小部件,但它仍然应该是相同的。非常感谢您的分享! 是的,完全没问题,欢迎您:) 请您接受答案,或者我可以帮助您解决其他问题吗?以上是关于颤振 | Firebase 用户身份验证和配置文件创建的主要内容,如果未能解决你的问题,请参考以下文章
用于电子邮件链接身份验证的颤振 ERROR_INVALID_ACTION_CODE 中的 firebase 身份验证