2

Я делаю проект Ionic 2 с Firebase 3 JS SDK.Firebase Facebook Войти с помощью Ionic

У меня возникли проблемы при попытке входа в систему с помощью facebook с использованием firebase FacebookAuthProvider.

Когда я пытаюсь получить AuthCredential от FacebookAuthProvider использованием

let provider = new firebase.auth.FacebookAuthProvider(); 
let credential = provider.credential(response.authResponse.accessToken); 

В provider.credential он говорит provider.credential не является функцией.

Вот моя полная функция SerivceProvider:

loginUserFacebook() { 
Facebook.login(['email']) 
.then(
    (response) => { 
    let credential: firebase.auth.AuthCredential; 
    credential = new firebase.auth.FacebookAuthProvider().credential(response.authResponse.accessToken); 
    this.fireAuth.signInWithCredential(credential); 
    } 
) 
.catch(
    (error) => { 
    var errorMessage: string = error.message; 
    let prompt = Alert.create({ 
     message: errorMessage, 
     buttons: [{text: "Ok"}] 
    }); 

    this.nav.present(prompt); 
    } 
); 

}

Я ввожу import { Facebook } from 'ionic-native';
и установили cordova-plugin-facebook4

Спасибо за помощь!

ответ

1

Это статический метод javascript. Изменить на:

let credential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken); 
+0

Когда я использую его как статический метод и попытаться скомпилировать с 'ионной перспективе android' следующее Эрро обнаруживается при компиляции аутентификации-data.ts файл : 'Ошибка TS2339:« Учетные данные свойства »не существует в типе типа FacebookAuthProvider. [20:41:51] Готово «построить» после 3.31 s' – Lirianer

+3

Собственно, это ошибка в определениях машинописного текста. Команда Firebase была уведомлена и работает над исправлением. В то же время используйте следующее обходное решение: ( firebase.auth.FacebookAuthProvider) .credential – bojeil

+0

Спасибо, это сработало! Извините за поздний отклик. – Lirianer

0

На самом деле, это ошибка в typescript definitions. Команда Firebase была извещена об ошибке и работает над исправлением. В то же время использовать следующий метод обхода: ---

(<any> firebase.auth.FacebookAuthProvider).credential 
Смежные вопросы