Firebase Auth 为同一电子邮件创建重复用户

Posted

技术标签:

【中文标题】Firebase Auth 为同一电子邮件创建重复用户【英文标题】:Firebase Auth creating duplicate users for same email 【发布时间】:2016-11-25 20:26:13 【问题描述】:

当用户首次通过 Facebook 登录 Firebase 身份验证时,会创建具有唯一 UID 的重复用户。

特殊的问题是我几个月前为这个应用程序实现了登录。一个不相关的问题导致我更改了我的 Firebase 应用。从那时起,新登录创建重复。这对我来说很难解决,因为我为登录实现的代码使用 Facebook SDK,并且没有太多揭示引擎盖下的内容。此外,Firebase 有一个选项可以防止用户使用来自不同提供商的相同电子邮件创建重复帐户。但是正如您所看到的,我在初次登录时收到了错误的用户。有没有人见过这个问题?当使用 Facebook SDK 出现问题时,我应该如何解决它?

【问题讨论】:

嘿凯尔,我假设您正在使用 Facebook OAuth 凭据调用 signInWithCredential。您是否碰巧不小心多次调用它。当前,使用同一电子邮件的多个用户创建请求(同时)可能会创建重复用户。 Firebase 团队已意识到此问题并正在努力修复。同时,在再次调用 signInWithCredential 之前检查您是否正在等待 signInWithCredential 解决。 @bojeil。你是对的。不久前我自己想通了。我一直在调用 signInWithCredential 两次。对于阅读本文的任何人可能有用的信息,如果请求访问的用户已经过身份验证,您将不会注意到此问题。对我来说,几个月前我实现了登录,出于某种原因编辑了代码以进行两次调用,然后当我在控制台的这一部分删除我的用户 UID 并登录时;结果是创建了两个帐户。 【参考方案1】:

有两次对 signInWithCredential 的调用。仅供参考,当用户已经登录时,这不会导致问题。因此,如果您遇到同样的问题,这可能是一个无声的错误。

【讨论】:

以上是关于Firebase Auth 为同一电子邮件创建重复用户的主要内容,如果未能解决你的问题,请参考以下文章

如何在不关闭当前 Firebase 会话的情况下创建用户身份验证 [重复]

Firebase Auth iOS用户匿名创建但未在控制台中显示

Firebase Auth -> 使用 signInWithCustomToken 创建的用户没有电子邮件地址

Flutter Firebase auth facebook无法正常工作

如何在使用 firebase/auth 和 react-native 验证他/她的电子邮件后立即登录用户而不创建整个登录页面?

Firebase Auth 使用来自不同类的文本输入创建新用户