firebase.auth.FacebookAuthProviderがundefinedになります
CreateReactNativeAppで作成したアプリでfirebaseを通じてFacebookログインを実装したいと考えています
ですがタイトル通り、どういうわけかFacebookAuthProvider
がundefined
になってしまい、先に進めません
import firebase from 'firebase';
const config = {
apiKey: 'API_KEY',
authDomain: '****',
databaseURL: '****',
storageBucket: '****'
};
firebase.initializeApp(config);
// 中略
const loginWithFb = () => {
return Facebook.logInWithReadPermissionsAsync('APP_ID', {
permissions: ['public_profile']
});
};
// ログインボタンのonPressにbind
async onPress() {
const { type, token } = await loginWithFb();
if (type === 'success') {
const credential = firebase.auth.FacebookAuthProvider.credential(token);
firebase.auth().signInWithCredential(credential).catch((error) => {
console.log(error);
});
}
}
問題はこのFacebookAuthProvider
なのですが、どうも動かないと思ったらこうなっていました
componentDidMount() {
const auth = firebase.auth.FacebookAuthProvider;
console.log(auth);
// undefined
}
firebaseオブジェクトのconfig自体には、以下のメソッドが正常に使えることから、問題があるようには思えません
// ちゃんと保存される
firebase.database().ref('users/' + 1).set({
name: 'hoge'
});
ライブラリが足りないのでしょうか?
どなたかご存知の方よろしくお願いします
追記
Object.getOwnPropertyNames(firebase)
で調べて見たところ、以下のようにすると実現できました
// firebase_をチェーンに追加
const credential = firebase.firebase_.auth.FacebookAuthProvider.credential(token);
ただ、メソッド名を見るにこのような使い方をするべきではないのは明確なので........
やはりどなたかご存知の方お願いいたします
なお、同じauth系であっても以下は正常に動作するようです
firebase.auth().signInWithCredential(credential)
firebase.auth().signOut();