我正在使用react-native-fbsdk: 0.8.0, react-native-firebase: ^5.2.2, react-native: ^0.57.4
和Facebook测试用户帐户。
这突然发生了。 一旦我从Firebase注销,然后尝试再次使用Facebook登录。
错误:提供的身份验证凭证格式错误或已过期。 [来自USER_INFO的facebook.com的远程站点5XX]。
我尝试了AccessToken.refreshCurrentAccessTokenAsync()。 但给我错误:无法刷新访问令牌。
Facebook令牌将在60天后过期。检查令牌的过期日期是2019年4月29日。 更改测试用户帐户密码,然后再次重新登录。
在Facebook或Firebase设置中我需要做些什么吗?
const result = await LoginManager.logInWithReadPermissions(["public_profile","email"]);
if (result.isCancelled) {
this.setState({isLoading : false});
Alert.alert('Error','Login cancelled. Please try again');
} else {
try{
await AccessToken.refreshCurrentAccessTokenAsync();
}catch(err){
this.setState({isLoading : false});
console.log('ereee',err);
}
const data = await AccessToken.getCurrentAccessToken();
var credential = firebase.auth.FacebookAuthProvider.credential(data.accessToken);
console.log(data.accessToken);
//here I get expired date is 2019 April 29
console.log(moment(data.expirationTime).toDate());
firebase.auth().signInWithCredential(credential)
.then((usercredential)=>{
if (usercredential){
}else{
this.setState({isLoading : false});
}
})
.catch((error) => {
console.log(error);
}
}
答案 0 :(得分:4)
就我而言;当我关闭“客户端中是否嵌入了应用秘密”时,我摆脱了这个错误。在:开发人员的Facebook->设置->高级。
注意:如果“本地或桌面应用程序?”,此选项可见。已启用。
答案 1 :(得分:2)
如果在Firebase中应用程序密码不正确,则发生此问题
如果输入的访问令牌错误,也会发生此问题
答案 2 :(得分:2)
我知道这不是一个真正的解决方案。但是我在登录之前添加了注销功能。我还没有问题。 问题由同一位用户尝试多次连接而没有正确注销组成。
答案 3 :(得分:1)
有同样的问题,重启设备后就消失了
答案 4 :(得分:1)
答案 5 :(得分:0)
这可能对OP没有帮助,因为问题已经很久了,但是今天在使用Firebase实施第三方登录时,我遇到了完全相同的问题,并且这个问题在Google上排名第一。
在实现GitHub登录期间,我有相同的错误消息。问题出在我这边,因为我错误地复制了API和API秘密密钥。
仔细检查您的密钥,确保没有像我一样复制任何多余的东西(它有多余的空间+多余的单词)。
答案 6 :(得分:0)
我遇到了同样的问题,事实证明,我忘记在Firebase控制台中设置正确的API密钥和机密(身份验证方法)。
答案 7 :(得分:0)
就我而言,我向Firebase添加了错误的bundle ID / iOS应用程序。因此,我回到了Firebase上的项目,单击“设置”图标,单击了 Project Settings ,然后删除了iOS应用,然后重新添加了正确的应用。
这也可能会解决Android上的问题,请确保程序包名称正确。
答案 8 :(得分:0)
我在 Unity 中遇到了这个问题,使用 FB 进行 Firebase 身份验证。
有五种可能的类型:消费者、企业、小游戏、游戏服务、工作场所或无。 (参考 - developers.facebook.com/docs)
首先,将 Facebook 应用类型创建为游戏服务,Firebase 不接受此身份验证方法。
当我将应用类型创建为 None
时,我摆脱了这个错误