错误:无法找到变量:Firebase(angularjs和angular fire)

时间:2016-09-19 14:57:01

标签: angularjs firebase angularfire

我是firebase和angularfire的新手。在我的应用中,我尝试在firebase数据库中创建一个新项目(教师对象)。我一直在Error: Can't find variable: Firebase

我在index.html中包含了以下脚本标记:

<script type="text/javascript" src="../libs/firebase/firebase.js"></script>
<script type="text/javascript" src="../libs/angular/angularfire/angularfire.js"></script>

然后,在我的app.js中,我已将firebase包括在内:

angular.module('app', ['firebase']);

我的控制器是:

app.controller('teacherCreateCtrl', ['$scope', '$state', 'Teacher', '$firebase', function($scope, $state, Teacher, $firebase) {
   var ref = new Firebase("https://xxx-xxxxxx.firebaseio.com/app/teachers");
   var firebaseConnection = $firebase(ref);
   $scope.teacher = new Teacher();
   $scope.userClickedCancel = function() {
      $state.go('app.teacher');
   }
   $scope.userClickedSave = function(newTeacher) {
      firebaseConnection.$set(newTeacher);
   }
}]);

代码执行在控制器的var ref = ...处停止。感谢任何帮助。感谢。

我使用的是firebase 3.4.0v和angularfire 2.0.2v。请注意,我使用此控制器的模板作为视图嵌入index.html

2 个答案:

答案 0 :(得分:2)

您正在混淆您的版本。如果您使用的是v3.x firebase,则无法使用v2.x代码。所以而不是:

var ref = new Firebase("https://xxx-xxxxxx.firebaseio.com/app/teachers");

你必须这样做:

var config = {
  apiKey: "<API_KEY>",
  authDomain: "<PROJECT_ID>.firebaseapp.com",
  databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
  storageBucket: "<BUCKET>.appspot.com",
};
firebase.initializeApp(config);

查看the docs了解详情。

答案 1 :(得分:0)

来自Firebase Angular quickstart

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/1.2.0/angularfire.min.js"></script>
...
var app = angular.module("sampleApp", ["firebase"]);
...
app.controller("SampleCtrl", function($scope, $firebaseObject) {
  var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
  $scope.data = $firebaseObject(ref);
  console.log($scope.data);
});

一切看起来都正确......你确定你也确实包括角度来源吗?

否则,您应该共享代码的相关部分......