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);
我正在尝试在我的 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);
当我尝试使用凭据登录时,出现以下错误: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);