CreateReactNativeAppで作成したアプリでfirebaseを通じてFacebookログインを実装したいと考えています
ですがタイトル通り、どういうわけかFacebookAuthProvider
がundefined
になってしまい、先に進めません
js
1import firebase from 'firebase'; 2 3const config = { 4 apiKey: 'API_KEY', 5 authDomain: '****', 6 databaseURL: '****', 7 storageBucket: '****' 8}; 9 10firebase.initializeApp(config); 11 12 13// 中略 14 15 16const loginWithFb = () => { 17 return Facebook.logInWithReadPermissionsAsync('APP_ID', { 18 permissions: ['public_profile'] 19 }); 20}; 21 22// ログインボタンのonPressにbind 23async onPress() { 24 const { type, token } = await loginWithFb(); 25 26 if (type === 'success') { 27 const credential = firebase.auth.FacebookAuthProvider.credential(token); 28 29 firebase.auth().signInWithCredential(credential).catch((error) => { 30 console.log(error); 31 }); 32 } 33}
問題はこのFacebookAuthProvider
なのですが、どうも動かないと思ったらこうなっていました
js
1componentDidMount() { 2 const auth = firebase.auth.FacebookAuthProvider; 3 console.log(auth); 4 // undefined 5}
firebaseオブジェクトのconfig自体には、以下のメソッドが正常に使えることから、問題があるようには思えません
js
1// ちゃんと保存される 2firebase.database().ref('users/' + 1).set({ 3 name: 'hoge' 4});
ライブラリが足りないのでしょうか?
どなたかご存知の方よろしくお願いします
追記
Object.getOwnPropertyNames(firebase)
で調べて見たところ、以下のようにすると実現できました
js
1// firebase_をチェーンに追加 2const credential = firebase.firebase_.auth.FacebookAuthProvider.credential(token);
ただ、メソッド名を見るにこのような使い方をするべきではないのは明確なので........
やはりどなたかご存知の方お願いいたします
なお、同じauth系であっても以下は正常に動作するようです
js
1firebase.auth().signInWithCredential(credential) 2firebase.auth().signOut();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。