【问题标题】:Is there any way to check if a user is new in flutter firebase (A facebook user)?有什么方法可以检查用户是否是 Flutter Firebase 中的新用户(Facebook 用户)?
【发布时间】:2019-12-05 18:52:45
【问题描述】:

我正在寻找一种方法来检查用户是刚刚注册还是刚刚登录,并且没有明显的方法可以使用 firebase 和使用 facebook 身份验证来实现这一点

【问题讨论】:

  • AuthResult 有 AdditionalUserInfo,它有 isNewUser 布尔值,可以为您提供此信息。

标签: android firebase flutter firebase-authentication


【解决方案1】:
【解决方案2】:

我发现最好的方法是比较user's metadata 中的lastSignInTimestampcreationTimestamp。如果它们相同或彼此接近,这可能是用户的第一次登录。

【讨论】:

  • AuthResult 有 AdditionalUserInfo,它有 isNewUser 布尔值,可以为您提供此信息。
【解决方案3】:

您应该使用在 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 用户,然后您可以在需要时使用它来存储您自己的用户类型(这似乎是您要查找的内容)。

【讨论】:

  • 感谢您的回答,但这不是我想要的,我只想将用户详细信息添加到 Firestore 一次,即用户第一次注册时。但是,firebase_auth 不支持这样的功能或方法,我找不到任何接近它的东西
  • 请记住,我想使用 facebook 进行身份验证,而 facebook 功能不区分注册和登录
  • @OmarEmam 当然,它没有一次性的功能来将自定义用户属性添加到数据库中,这取决于开发人员。 SDK 为您提供了通过 Google、Facebook、Twitter、Github 和其他平台向 Firebase 进行身份验证的方法。您需要仔细阅读文档或正确说出您的问题。我与您链接的资源提供了足够的信息来证明我在说什么。我什至正在编辑我的回复,以链接更多 Facebook/Firebase 集成案例。
  • 好的,谢谢,虽然我只是想知道是否有一个函数可以处理我想要的类似于这个 boolean isNewUser = task.getResult().getAdditionalUserInfo().isNewUser() ;
  • 您的原始问题已被修改,其他答案现在反映了您的新问题的答案。看来你有你需要的。
猜你喜欢
  • 2022-11-29
  • 2021-12-26
  • 2018-08-05
  • 2019-01-20
  • 2018-11-15
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多