我正在寻找一种方法来检查用户是刚刚注册还是刚刚登录,并且没有明显的方法可以使用Firebase并使用facebook身份验证<</p>
> 我发现的最好的方法是比较用户元数据中的lastSignInTimestamp
和creationTimestamp
。如果它们相同或彼此接近,则这可能是用户的首次登录。
类AuthResult
有AdditionalUserInfo
,它有isNewUser
布尔值,它给你这些信息。
- https://pub.dev/documentation/firebase_auth/latest/firebase_auth/AuthResult-class.html
- https://pub.dev/documentation/firebase_auth/latest/firebase_auth/AdditionalUserInfo-class.html
你应该使用这里找到的 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 用户,然后您可以根据需要使用该用户来存储您自己的用户类型(这似乎是您正在寻找的(。