[未处理的承诺拒绝:TypeError:未定义不是对象(正在评估'Expo.Facebook.logInWithReadPermissionsAsync')]

时间:2019-12-06 07:58:24

标签: reactjs facebook react-native

我想用Facebook创建一个注册。该代码应该可以正常工作了。我将其与其他来源进行了比较,他们像我一样使用它。

    loginWithFacebook = async () => {
    const { type, token } = await Expo.Facebook.logInWithReadPermissionsAsync(
        '449579609085368',
        { permissions: ['email', 'public_profile'] }
    );

    if (type === 'success') {
        const credentials = f.auth().FacebookAuthProvider.credential(token);
        f.auth.signInWithCredential(credentials).catch((error) => 'Error logging in Facebook', error);
    }
}

我对任何帮助都很高兴。

3 个答案:

答案 0 :(得分:2)

通过

安装expo-facebook
expo install expo-facebook

然后使用此代码

import * as Facebook from 'expo-facebook'; 

const login=async ()=>{

await Facebook.initializeAsync('<APP_ID>');

const { type, token } = await Facebook.logInWithReadPermissionsAsync(
      { permissions:['public_profile', 'email'] },
    );
}

答案 1 :(得分:0)

为了让其他人更容易看到,我在这里的评论中移动了答案。

您可能错误地导入了Expo.Facebook。也许是这样导入的

import * as Facebook from 'expo-facebook'; 

然后像这样使用它:

const { type, token } = await Facebook.logInWithReadPermissionsAsync(
    '449579609085368',
    { permissions: ['email', 'public_profile'] }
);

答案 2 :(得分:0)

Facebook已从Expo移除,并移至expo-facebook。

遵循本文档https://docs.expo.io/versions/latest/sdk/facebook/