【问题标题】:React native firebase authentication using different providers使用不同的提供者反应原生 Firebase 身份验证
【发布时间】:2020-09-04 22:13:25
【问题描述】:

首先我使用函数createUserWithEmailAndPassword(jamesdmurphy51@gmail.com, password)在firebase中创建新用户。

然后我使用下面的代码使用 Facebook 登录

const result = await LoginManager.logInWithPermissions(['public_profile', 'email']);
const data = await AccessToken.getCurrentAccessToken();
const firebaseCredential = await auth.FacebookAuthProvider.credential(data.accessToken);
const fbUserObj = await auth().signInWithCredential(firebaseCredential);

问题是它创建了一个具有单独 UID 的完全独立的用户帐户......即使链接到 facebook 帐户的电子邮件地址与用于createUserWithEmailAndPassword 的电子邮件地址相同。 如何使用户可以使用 Facebook 登录现有帐户?

【问题讨论】:

  • 当我使用 firebase 时,该代码对我来说工作得很好
  • 我认为您正在寻找一种将两个帐户与同一封电子邮件合并的方法。这个问题已经回答了here。此外,您可以检查 Firebase docs 以进行身份​​验证合并(虽然这是针对 Web,但在 React Native 中可能会有所不同)。

标签: javascript react-native firebase-authentication react-native-firebase


【解决方案1】:

当您调用 auth().signInWithCredential(firebaseCredential) 时,您确实在 Firebase 身份验证中创建了一个新帐户。

如果您想将 Facebook 凭据链接到现有帐户,则需要调用 linkWithPopuplinkWithRedirect,如 linking accounts 上的 Firebase 文档中所示。

【讨论】:

  • 如果您像我一样使用@react-native-firebase,则提供的链接不适用
  • 有点死灵,但对于任何来这里寻找同样东西的人(或者你@jamesmurphy),我的回答here可能会有所帮助。
猜你喜欢
  • 2019-02-23
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 2016-08-13
  • 2017-10-11
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多