firebase.database no es una function

Estoy tratando de actualizar de la versión anterior de Firebase a la más reciente en mi proyecto iónico . Seguí este tutorial para la actualización. En el paso 4 de esta página, estoy atascado en la última statement firebase.database().ref(); .

Mensaje de error

 TypeError: firebase.database is not a function 

A continuación está mi código. Amablemente ayuda.

 ... // Initialize Firebase this.config = { apiKey: "some-api-key", authDomain: "myapp.firebaseapp.com", databaseURL: "https://myapp.firebaseio.com", storageBucket: "project-somenumber.appspot.com", }; ... this.authWithOAuthPopup = function(type) { var defernetworking = $q.defer(); console.log(service.config); // ---> Object {apiKey: "some-api-key", authDomain: "myapp.firebaseapp.com", databaseURL: "https://myapp.firebaseio.com", storageBucket: "project-somenumber.appspot.com"} firebase.initializeApp(service.config); console.log(firebase); // ---> Object {SDK_VERSION: "3.0.5", INTERNAL: Object} service.rootRef = firebase.database().ref(); //new Firebase("https://rsb2.firebaseio.com"); ---> I am getting error on this line "TypeError: firebase.database is not a function" service.rootRef.authWithOAuthPopup(type, function(error, authData) { if (error) { service.authError = error; switch (error.code) { case "INVALID_EMAIL": console.log("The specified user account email is invalid."); break; case "INVALID_PASSWORD": console.log("The specified user account password is incorrect."); break; case "INVALID_USER": console.log("The specified user account does not exist."); break; default: console.log("Error logging user in:", error); } defernetworking.resolve(service.authError); } else { service.authData = authData; console.log("Authenticated successfully with payload:", authData); defernetworking.resolve(service.authData); } return defernetworking.promise; }); return defernetworking.promise; } var service = this; 

Actualizar

Después de agregar la última biblioteca de database, se resuelve este problema de preguntas.

Actualizando mi código aquí

 this.authWithOAuthPopup = function(type) { var defernetworking = $q.defer(); console.log(service.config); firebase.initializeApp(service.config); console.log(firebase); service.rootRef = firebase.database(); //.ref(); //new Firebase("https://rsb2.firebaseio.com"); var provider = new firebase.auth.FacebookAuthProvider(); firebase.auth().signInWithRedirect(provider); firebase.auth().getRedirectResult().then(function(result) { if (result.cnetworkingential) { // This gives you a Facebook Access Token. You can use it to access the Facebook API. var token = result.cnetworkingential.accessToken; console.log(result); // ... } // The signed-in user info. var user = result.user; }).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCnetworkingential type that was used. var cnetworkingential = error.cnetworkingential; // ... }); return defernetworking.promise; } 

Me encontré con esto con Ionic y resultó que no estaba incluyendo todo cuando usé el último Firebase Client. Si firebase-app Firebase como firebase-app , las piezas de la database y de la authentication deben firebase-app separado, ya que no están incluidas cuando se incluye Firebase de esta forma.

Agregue lo siguiente a su index.html después de include firebase-app.js

 <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script> <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-database.js"></script> 

Obviamente no necesita usar el CDN, podría usar bower (probablemente la forma preferida con Ionic) o NPM con Browserify.

 // Browserify Setup var firebase = require('firebase/app'); require('firebase/auth'); require('firebase/database'); 

El fragment debajo es tomado de los documentos de configuration web de Firebase

Puede networkingucir la cantidad de código que usa su aplicación simplemente incluyendo las funciones que necesita. Los componentes que se instalan individualmente son:

firebase-app – El cliente central de firebase (requerido).
firebase-auth – Autenticación de Firebase (opcional).
database firebase: la database en time real de Firebase (opcional).
firebase-storage – Firebase Storage (opcional).

Desde el CDN, incluya los componentes individuales que necesita (incluya primero firebase-app)

Primero, asegúrate de estar usando

 <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script> 

Firebase authWithOAuthPopup ha cambiado un poco en la nueva versión.

Ahora no usas el ref para llamar a los methods de authentication. Debería usar firebase.auth() insted.

 var auth = firebase.auth(); var provider = new firebase.auth.TwitterAuthProvider(); auth.signInWithPopup(provider).then(function(result) { // User signed in! var uid = result.user.uid; }).catch(function(error) { // An error occurnetworking });