1

這是我的代碼..它非常簡單..只是試圖讓用戶通過Facebook進行身份驗證,然後將其添加到Firebase系統! 我應該提到,我使用的是React Native,我讀過Firebase庫的各個部分不能與React Native一起使用。undefined不是一個對象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) 

    }); 
}); 

唯一的理由我真的可以想到的這是火力地堡是不確定的,或者未完成初始化。雖然這似乎是..也許我可以把某種承諾,以確保它有初始化。 (關於如何做到這一點任何想法?)

雖然火力點似乎initalized ..但我通過API參考去了,真的不能找到任何理由.auth.FacebookAuthProvider.credential就不會存在

任何幫助將是偉大的!

+0

控制檯中顯示哪個錯誤? – Jorgeblom

+0

用provider.credential替換firebase.auth.FacebookAuthProvider.credential(..) (..) – Jorgeblom

+0

升級到最新的3.3.0版本。以前版本的類型定義有問題。 – bojeil

回答

3

我有這個完全相同的問題,我有一個解決方案,爲我工作,但我不知道它是否會一樣的你。

我在我的實例類火力點通過一個單獨的模塊,在一個叫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

使用相同的確切過程奇怪...很高興我遇到這個帖子!謝謝! –

相關問題