使用不同的提供者反应本机 firebase 身份验证

React native firebase authentication using different providers

首先,我使用函数 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 登录现有帐户?

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

如果您想 link 现有帐户的 Facebook 凭据,则需要调用 linkWithPopuplinkWithRedirect,如 linking accounts 上的 Firebase 文档所示.