【发布时间】:2017-01-05 09:45:15
【问题描述】:
这是我的代码.. 它非常简单.. 只是试图允许用户通过 facebook 进行身份验证,然后将其添加到 Firebase 系统! 我应该提到我正在使用 React Native,我确实读过 Firebase 库的各个部分不适用于 React Native。
const auth = firebase.auth();
const provider = firebase.auth.FacebookAuthProvider;
LoginManager.logInWithReadPermissions(['public_profile'])
.then(loginResult => {
alert("login results")
if (loginResult.isCancelled) {
alert('user canceled');
return;
}
AccessToken.getCurrentAccessToken()
.then(accessTokenData => {
const credential = firebase.auth.FacebookAuthProvider.credential(accessTokenData.accessToken);
alert("Credential: " + credential )
return auth.signInWithCredential(credential);
})
.then(credData => {
console.log(credData);
alert("CRED data:::" + credData)
alert(firebase)
})
.catch(err => {
console.log(err);
alert("ERROR:::" + err)
alert(firebase)
});
});
我能真正想到的唯一原因是 Firebase 未定义或者它没有完成初始化.. 虽然看起来是.. 也许我可以做出某种承诺来确保它已经初始化。 (关于如何做到这一点的任何想法?)
虽然 firebase 似乎已初始化.. 但我浏览了 api 参考,并没有真正找到 .auth.FacebookAuthProvider.credential 不存在的任何原因
任何帮助都会很棒!
【问题讨论】:
-
控制台中到底显示了哪个错误?
-
将 firebase.auth.FacebookAuthProvider.credential(..) 替换为 provider.credential(..)
-
升级到最新的 3.3.0 版本。上一版本的类型定义有问题。
-
@bojeil 将其升级到 3.3.0 .. 我刚刚做了“npm install firebase --save”并重新启动了模拟器。希望这是完整的过程...似乎没有工作..得到完全相同的错误
-
@Bommox 做到了,现在错误是“类型错误:未定义不是对象(评估'provider.credential')
标签: javascript facebook firebase react-native firebase-authentication