我有root.js并有一个LoginScreen。
这就是根的样子。
constructor(props){
super(props);
fire.auth().onAuthStateChanged(function(user){
if(user){
//logged in!
console.log("logged in!");
} else {
//logged out!
console.log("logged out!");
}
});
}
render() {
return (
<View style={styles.container}>
<LoginScreen />
</View>
);
}
}
我的loginScreen是:
async loginWithFacebook (){
const {type, token} = await Expo.Facebook.logInWithReadPermissionsAsync(
"2073519281256416",
{permissions:["mail", "public_profile"]}
);
if(type == "success"){
const credentials = fire.auth.FacebookAuthProvider.credential(token);
fire.auth().signInWithCredential(credentials).catch((error)=>{
console.log("error is ", error);
})
}
}
render(){
return(
<View>
<TouchableHighlight style={{backgroundColor: "green"}}
onPress={()=> this.loginWithFacebook()}>
<Text>Login with Facebook!</Text>
</TouchableHighlight>
</View>
);
}
}
当我单击按钮时,它向我发送了Facebook页面。但是有一个错误,它是无效的范围:邮件。好的。当我尝试将loginWithFacebook函数也放入Root js和Button中时,就没有问题。我可以连接...但是为什么不能从LoginScreen顺利连接?