我已经通过CDN包含了Firebase和AngularFire js文件。我已经将AngularFire注入我的应用程序中,然后将$firebaseArray注入我的控制器。然而,由于某种原因,我仍然在我的开发控制台中收到"Firebase 未定义错误"。
我查看了以下链接:
角度火力 - 未定义火力基地
Firebase 错误 - "FireBase 未定义">
Angularfire"Firebase"未定义
角度火未捕获参考错误:未定义火力基地
它们都没有解决我的情况。我错过了什么吗?我在下面包含我的代码:
//App
angular.module("TestApp", ['ngAnimate', 'ui.router', 'ui.bootstrap', 'firebase']);
//Controller
angular.module('TestApp')
.controller('DetailsController',['$scope', '$firebaseArray', '$http', function ($scope, $firebaseArray, $http) {
console.log($firebaseArray); // <- verified here that the injection works
var rootRef = new Firebase("https://<my-ref-url>.firebaseio.com");
//load data from firebase db
$scope.loadCommunity = function(){
$scope.hasCommunity = true;
$scope.messages = $firebaseArray(rootRef);
};
}]);
以下是我包含在index.html文件中的代码:
<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase-database.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "MY API KEY HERE",
authDomain: "<my-ref-url>.firebaseapp.com",
databaseURL: "<my-ref-url>.firebaseio.com",
storageBucket: "",
};
firebase.initializeApp(config);
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angularFire/2.0.1/angularfire.min.js"></script>
问题是您正在尝试使用new Firebase("https://<my-ref-url>.firebaseio.com");
获取rootRef
,而这来自传统的2.x Firebase SDK。
这是Firebase 3.x的变化之一。你必须以稍微不同的方式做到这一点。
var rootRef = firebase.database().ref();
你可以用这个jsFiddle做一些测试