2016-05-19 3 views
23

Я пытаюсь разработать веб-приложение с аутентификацией angular2 и firebase 3.0 в соответствии с рекомендациями, данными Google. Однако все руководства для Интернета имеют примеры javascript.Firebase 3.0 с машинописными текстами

Я добавил ниже строк в моей index.html

<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script> 
var config = { 
    apiKey: "AIzaSyCSfBMvAdEDpcm-z6gWp2XXXXXXXXXXXXX", 
    authDomain: "fototrans-calculator.firebaseapp.com", 
    databaseURL: "https://fototrans-calculator.firebaseio.com", 
    storageBucket: "fototrans-calculator.appspot.com", 
}; 
firebase.initializeApp(config); 

Но когда я пытаюсь использовать

rootRef = firebase.database.ref(); 

Я получаю сообщение об ошибке на 'firebase', говоря

[ts] Cannot find name 'firebase'. 

сейчас Я помню, что я установил firebase с использованием титров для предыдущей версии Firebase. У нас есть такая вещь для новой версии Firebase? Пожалуйста, направляйте.

Заранее спасибо

ответ

4

Вы можете обойти это, делая declare var firebase: any;

+2

это работает, но это не приносит пользы от Машинопись набрав больше – Jacky

+1

@Jacky Я знаю: (Новая версия AngularFire2 имеет ручные записи Firebase 3, но я не понял, как заставить их работать: https://github.com/angular/angularfire2/blob/master/manual_typings/firebase3/firebase3.d.ts –

+0

@Alex. Да, у меня такие же проблемы. Я пытаюсь использовать firebase3 вместе с angularfire2 под настройкой Angular CLI. Хотя изображения с угловым огнем 2 хорошо работают, я могу 'получить firebase3, чтобы получить признание. Почувствуйте, как я пробовал все возможные комбинации. –

4

Существует файл определения типа доступны в https://github.com/suhdev/firebase-3-typescript

Я представил pull request, которые мы надеемся решить этот вопрос вы описываете ,

+1

В файле tsconfig.json включить следующую строку в «файлы» массив: «файлы»: [ «node_modules/angularfire2/firebase3.d.ts» ] Это временный шаг, пока Firebase типизации не опубликовано в номер для печати. – Eusthace

+0

FWIW, эти типовые данные взрываются на tslint. –

2

Вы можете использовать файл типизации определения, содержащегося в хранилище AngularFire2 GitHub (расположенной here):

Включить следующее в файле typings.json:

{ 
    "ambientDependencies": { 
    "firebase": "github:angular/angularfire2/manual_typings/firebase3/firebase3.d.ts#2c9ab3117eeb804e8e4996461eddcf32efa54a56" 
    } 
} 

Обратите внимание, что значение здесь просто путь к файлу на GitHub, за которым следует соответствующий хеш фиксации. Хэш в примере равен master на момент написания, поэтому вы можете обновить его до последней фиксации.

Далее вы можете запустить node_modules/.bin/typings install, а Типики будут применять последние изменения в вашем файле typings.json.

10

По Firebase 3.2.1, в типизации включены как часть официального пакета НПМ:

https://firebase.google.com/support/release-notes/js#wzxhzdk4version_321_-_july_26_2016wzxhzdk5

+3

Я вижу тонны ошибок компиляции TypeScript при включении этих типов с помощью 'typings install --global --save file: ...', а затем компиляции моего проекта. – ktusznio

+0

Знает ли кто-нибудь о каком-то рабочем примере кода, используя эти пиктограммы? –

+2

@ktusznio похоже, что встроенные пиктограммы работают только с TypScript 2 – urish

Смежные вопросы