1

ここは私のコードです。かなり簡単です。ユーザーがフェイスブックで認証してFirebaseシステムに追加できるようにしようとしています! 私はReact Nativeを使用していると言いますが、Firebaseライブラリのさまざまな部分はReact Nativeで動作しません。未定義はオブジェクトではありませんfirebase.auth.FacebookAuthProvider.credential

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はinitalizedしているようだ..しかし、私は、APIリファレンスを経て、本当に.auth.FacebookAuthProvider.credentialは

存在しないだろう、なぜ何らかの理由を見つけることができませんが、

どのような助けが素晴らしいだろう!

+0

コンソールにはどのエラーが表示されますか? – Jorgeblom

+0

firebase.auth.FacebookAuthProvider.credential(..) をprovider.credential(..)に置き換えてください。 – Jorgeblom

+0

最新の3.3.0バージョンにアップグレードしてください。以前のバージョンの型定義に問題がありました。 – bojeil

答えて

3

私はまったく同じ問題を抱えていましたが、私にとってはうまくいく解決策がありましたが、それがあなたと同じになるかどうかはわかりません。

私は、別のモジュールを介して私のfirebaseクラスをインスタンス化したFirebaseService.js

'use-strict'; 

const firebase = require('firebase'); 
const APP_BASE = 'https://your-unique-url.firebaseapp.com/' 

const FIREBASE_CONFIG = { 
    apiKey: '[super_unique]', 
    authDomain: 'your-unique-url.firebaseapp.com', 
    databaseURL: APP_BASE, 
    storageBucket: 'your-unique-url.appspot.com', 
}; 

export const Firebase = firebase.initializeApp(FIREBASE_CONFIG); 

と呼ばれるファイルで、私はそれをインポートすることにより、自分のコードで他のどこでも、それを使用していた。

const { Firebase } = require ('./services/FirebaseService'); 

これは、Facebookのログインの実装に慣れてしまうまでは問題ないようでした。同じ問題が発生したときです。

facebookでログインしようとしていた画面にfirebaseをインポートする必要がありました。代わりに自分のサービスを必要とする、私はNPMモジュール使用:その後

const firebase = require('firebase'); 

を、私はFacebookAuthProvider.credentialにアクセスすることができました。私は本当になぜこれが当てはまるのかわからない、モジュールの使用に何か問題があったかもしれない

+0

同じ正確な問題奇妙な...私はこのポストに出会ってうれしい!ありがとう! –

関連する問題