【发布时间】:2019-12-05 18:52:45
【问题描述】:
我正在寻找一种方法来检查用户是刚刚注册还是刚刚登录,并且没有明显的方法可以使用 firebase 和使用 facebook 身份验证来实现这一点
【问题讨论】:
-
AuthResult 有 AdditionalUserInfo,它有 isNewUser 布尔值,可以为您提供此信息。
标签: android firebase flutter firebase-authentication
我正在寻找一种方法来检查用户是刚刚注册还是刚刚登录,并且没有明显的方法可以使用 firebase 和使用 facebook 身份验证来实现这一点
【问题讨论】:
标签: android firebase flutter firebase-authentication
AuthResult 类有 AdditionalUserInfo,它有 isNewUser 布尔值,可以为您提供此信息。
我发现最好的方法是比较user's metadata 中的lastSignInTimestamp 和creationTimestamp。如果它们相同或彼此接近,这可能是用户的第一次登录。
【讨论】:
您应该使用在 here 找到的 FlutterFire 插件。
具体来说,身份验证包将帮助您管理: https://github.com/flutter/plugins/tree/master/packages/firebase_auth
这段代码会让你知道是否有当前用户。类似的东西。
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseUser currentUser = await _auth.currentUser();
if (user != null) {
_message = 'Successfully signed in, uid: ' + user.uid;
} else {
_message = 'Sign in failed';
}
使用 Facebook/Firestore 的特定凭据身份验证: https://github.com/flutter/plugins/blob/master/packages/firebase_auth/lib/src/auth_provider/facebook_auth_provider.dart
您还需要导入 Facebook SDK 并在那里传递凭据。 Firebase 登录/注册调用处理其余部分,然后传回 Firebase 用户,然后您可以在需要时使用它来存储您自己的用户类型(这似乎是您要查找的内容)。
【讨论】: