我正在使用react-native-facebook-login包来登录用户。目前,该流程运行良好,在用户输入其详细信息后,我成功看到返回了包含其信息的对象。
当我尝试使用 signInWithCredential 在 Firebase 中创建帐户时,我收到以下错误消息:
signInWithCredential failed: First argument "credential" must be a valid
我似乎找不到需要如何传递该凭据的细分 - 它是一个字符串、一个对象、一个数组等。它只是令牌还是我需要传递其他详细信息(即提供商)?
我当前返回的凭据对象具有:
- 权限:数组
- 令牌:字符串
- 令牌到期日期:字符串
- 用户 ID:字符串
任何帮助将不胜感激 - 谢谢!
感觉很开心 - 终于破解了坚果。
它们的关键位是令牌需要先更改,然后才能成为相关凭据。请参阅下面的代码:
onLogin={function(data){
let token = firebase.auth.FacebookAuthProvider.credential(data.credentials.token);
firebase.auth().signInWithCredential(token)
.then((user) => {
console.log(user)
}).catch((err) => {
console.error('User signin error', err);
});
}}
根据 Firebase 的文档回答您的问题:其中GoogleAuthProvider可以是您的任何设置/支持的身份验证提供程序
// Build Firebase credential with the Google ID token.
var credential = firebase.auth.GoogleAuthProvider.credential(id_token);
// Sign in with credential from the Google user.
firebase.auth().signInWithCredential(credential).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
附带说明一下,当你使用react-native和firebase时,你已经尝试过react-native-firestack了吗?让很多事情变得更容易。