React Native:使用 Redux Saga Firebase 实现 Facebook OAuth

React Native: Implementing Facebook OAuth with Redux Saga Firebase

我正在尝试在我的 React Native 应用程序中实施 Facebook OAuth (react-native-fbsdk)。我可以获得访问令牌。使用访问令牌,然后我可以使用 const credential = yield facebookAuth.credential(data.accessToken); 检索凭据然后当我尝试创建用户时,出现错误(见下文)

凭据对象:

{
oauthIdToken: "MY_ID_TOKEN"
providerId: "facebook.com"
signInMethod: "facebook.com"
}

问题:

我想做但似乎无法弄清楚的最后一步是使用 const user = yield call(reduxSagaFirebase.auth.signInAndRetrieveDataWithCredential, credential);

中的凭据在 Firebase 中创建一个用户

当我尝试使用凭据登录时,出现以下错误:Invalid IdP response/credential http://localhost?id_token="MY_TOKEN_HERE

使用 Facebook Saga 登录

// Redux Saga: Login With Facebook
function* loginWithFacebookSaga() {
  try {
    // Login To Facebook With Read Permissions
    console.log('Logging in with Facebook');
    yield LoginManager.logInWithPermissions([
      'public_profile',
      'email',
      'user_friends',
    ]);

    // Check If Cancelled
    // if (!result.isCancelled) {
      const data = yield AccessToken.getCurrentAccessToken();
      // yield alert(JSON.stringify(data.accessToken));
    // }

    // Create Firebase Auth Account With Facebook Access Token
    const credential = yield facebookAuth.credential(data.accessToken);
    // alert(JSON.stringify(credential));

    // Login (ISSUE HERE)
    const user = yield call(reduxSagaFirebase.auth.signInAndRetrieveDataWithCredential, credential);
  }
  catch (error) {
    // Firebase: Login Error
    alert(error);
    yield put(loginWithFacebookError(error));
  }
};

更新:您的凭据可能有问题。请尝试以下

import firebase from 'firebase';

const credential = firebase.auth.FacebookAuthProvider.credential(data.accessToken);