2 votes

Angularfire Uncaught ReferenceError : Firebase n'est pas défini

Je suis l'exemple Getting started with Firebase and Angular - Firecasts #4 et je continue à obtenir :

Uncaught ReferenceError: Firebase is not defined.

Des idées ?

Voici mon app.js :

    angular
    .module('app', ['ngRoute', 'firebase'])
    .constant('FirebaseUrl', 'https://<my-app>.firebaseio.com/')
    .service('rootRef', ['FirebaseUrl', Firebase])
    .service('users', Users)
    .controller('MyCtrl', MyController)
    .config(ApplicationConfig);

function ApplicationConfig($routeProvider) {
    $routeProvider.when('/', {
        controller: 'MyCtrl as ctrl',
        templateUrl: 'views/myctrl.html'
    });
}

function Users(rootRef, $firebaseObject, $firebaseArray) {
    var usersRef = rootRef.child('users');
    this.get = function get(id) {
        return $firebaseObject(usersRef.child(id));
    };

    this.all = function all() {
        return $firebaseArray(usersRef);
    };
}

function MyController(users) {
    this.users = users.all();
}

Voici mon index.html :

<!DOCTYPE html>
    <html lang="en" ng-app="app">
     <head>
    <meta charset="UTF-8">
    <title>AngularFire</title>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/firebase/firebase.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="bower_components/angularfire/dist/angularfire.js"></script>
    <script src="app.js"></script>
</head>
<body>
    <ng-view></ng-view>
</body>
</html>

1voto

Boas Babs Points 31

Il semble que vous utilisiez une nouvelle version de firebase. Allez-y et réécrivez cet exemple comme il est dit ici : https://firebase.google.com/support/guides/firebase-web#monitor_authentication_state_numbered .

Vous avez besoin du point 4 : "Dans les nouveaux SDK, vous n'instanciez plus les références d'une base de données via le nouveau Firebase. Au lieu de cela, vous initialiserez le SDK via firebase.initializeApp()..."

0voto

theblindprophet Points 5805

Vous devez insérer :

var rootRef = new Firebase('https://<my-app>.firebase.io.com');

à l'intérieur de MyController comme le montre cette picture .

Le commentateur explique que Firebase est injectée dans le contrôleur en tant que "fonction de construction Firebase".

'FirebaseUrl' est l'url définie ci-dessus à l'intérieur de .constant .

Son explication est assez rapide, mais dans tous les cas, vous avez besoin de cette ligne de code pour définir la référence.

Merci de modifier ou de commenter ce message si quelqu'un a plus d'informations.

0voto

Luca Points 782

J'ajoute ceci comme réponse à l'utilisation du lien : nouveaux documents

Comme l'a dit Boas Babs, la nouvelle version utilise une approche différente pour obtenir la référence de la base de données.

app.controller("SampleCtrl", function($scope, $firebaseObject) {
  var ref = firebase.database().ref();

  // download the data into a local object
  $scope.data = $firebaseObject(ref);
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X