2016-05-19 36 views
23

Sto cercando di sviluppare un'app Web con autenticazione angular2 e firebase 3.0 seguendo le linee guida fornite da google. Tuttavia tutte le guide per il web hanno esempi javascript.Firebase 3.0 con dattiloscritto

ho aggiunto qui di seguito le linee nel mio 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); 

Ma quando provo ad usare

rootRef = firebase.database.ref(); 

ottengo un errore su 'Firebase' dicendo

[ts] Cannot find name 'firebase'. 

Ora Ricordo che avevo installato Firebase usando le digitazioni per la versione precedente di Firebase. Abbiamo ancora una cosa del genere per la nuova versione di Firebase? Per favore guida.

Grazie in anticipo

risposta

4

È possibile aggirare questo facendo declare var firebase: any;

+2

funziona, ma non beneficia di tipografico a digitare più – Jacky

+1

@Jacky lo so: (La nuova versione di AngularFire2 ha digitazioni manuali di Firebase 3 ma non ho capito come farle funzionare: https://github.com/angular/angularfire2/blob/master/manual_typings/firebase3/firebase3.d.ts –

+0

@Alex Sì, sto avendo gli stessi problemi Sto provando a usare firebase3 insieme a angularfire2 sotto l'impostazione della CLI angolare mentre le digitazioni di angularfire2 funzionano bene, posso ottenere gli firebase3 per essere riconosciuti. Mi sento come se avessi provato tutte le possibili combinazioni. –

4

C'è un file di definizione del tipo disponibile presso https://github.com/suhdev/firebase-3-typescript

Ho presentato un pull request che si spera di risolvere il problema che si sta descrivendo .

+1

Nel file tsconfig.json includono la seguente riga nella propria matrice "file": "file": [ "node_modules/angularfire2/firebase3.d.ts" ] Questo è un passo temporanea fino a quando le tipizzazioni Firebase sono pubblicato su npm. – Eusthace

+0

FWIW, quelle tipizzazioni esplodono su tslint. –

2

È possibile utilizzare il file di definizione Tipizzazioni previsto nel repository AngularFire2 GitHub (che si trova here):

includere quanto segue nel file typings.json:

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

Nota che il valore qui è semplicemente il percorso al file su GitHub seguito dall'hash di commit pertinente. L'hash nell'esempio è master al momento della stesura, quindi potresti voler aggiornare all'ultima commit.

Successivamente è possibile eseguire node_modules/.bin/typings install e Digitazioni applicherà le ultime modifiche dal file typings.json.

10

A partire dal 3.2.1 Firebase, le tipizzazioni sono inclusi come parte del pacchetto ufficiale NPM:

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

+3

Sto vedendo un sacco di errori di compilazione di TypeScript quando includo questi tipi di tip tramite 'typings install --global --save file: ...' e poi compila il mio progetto. – ktusznio

+0

Qualcuno conosce qualche codice di esempio di lavoro usando questi tipi di tipizzazione? –

+2

@ktusznio sembra che le tipizzazioni integrate funzionino solo con Typescript 2 – urish