AngularFire 不显示来自 Firebase 数据库的数据
AngularFire doesn't show data from Firebase Database
我正在关注 this 视频。但是我在实施它时遇到了麻烦。这是 HTML 文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome to Firebase Hosting</title>
<!-- AngularJS -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/2.0.2/angularfire.min.js"></script>
<!-- Firebase -->
<script src="https://www.gstatic.com/firebasejs/3.3.0/firebase.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="app">
<div id="message" ng-controller="MyController as ctrl">
<pre>
{{ ctrl.object | json }}
</pre>
</div>
</body>
</html>
我的 app.js 文件是这个。
(function(){
// Initialize Firebase
var config = {
apiKey: "SOME KEY",
authDomain: "tier2list.firebaseapp.com",
databaseURL: "https://tier2list.firebaseio.com",
storageBucket: "",
};
firebase.initializeApp(config);
angular.module('app', ['firebase']).controller('MyController', function($firebaseObject){
const rootRef = firebase.database().ref().child('tier2list');
const ref = rootRef.child('object');
this.object = $firebaseObject(ref);
});
}());
这是我的数据库结构。
但是结果如下
控制台也没有错误。数据库规则如下
{
"rules": {
".read": true,
".write": true
}
}
问题出在你同步的路径上:
const rootRef = firebase.database().ref().child('tier2list');
你的数据库中没有childtier2list
,所以你会得到一个空的object。
相反,您正在尝试同步整个数据库,您可以通过以下方式实现:
const rootRef = firebase.database().ref()
当 Frank 回答时,我正在讨论这个问题。他有正确的答案,但为了使用 David 的代码,您的数据库应该如下所示:
在他的遍历中,他已经在 angular
节点内部,所以这可能有点混乱。
我还为该项目创建了一个 Github 存储库,以防有人在自己制作时遇到问题:
https://github.com/LukeSchlangen/angularFireQuickDemo
我正在关注 this 视频。但是我在实施它时遇到了麻烦。这是 HTML 文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome to Firebase Hosting</title>
<!-- AngularJS -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/2.0.2/angularfire.min.js"></script>
<!-- Firebase -->
<script src="https://www.gstatic.com/firebasejs/3.3.0/firebase.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="app">
<div id="message" ng-controller="MyController as ctrl">
<pre>
{{ ctrl.object | json }}
</pre>
</div>
</body>
</html>
我的 app.js 文件是这个。
(function(){
// Initialize Firebase
var config = {
apiKey: "SOME KEY",
authDomain: "tier2list.firebaseapp.com",
databaseURL: "https://tier2list.firebaseio.com",
storageBucket: "",
};
firebase.initializeApp(config);
angular.module('app', ['firebase']).controller('MyController', function($firebaseObject){
const rootRef = firebase.database().ref().child('tier2list');
const ref = rootRef.child('object');
this.object = $firebaseObject(ref);
});
}());
这是我的数据库结构。
但是结果如下
控制台也没有错误。数据库规则如下
{
"rules": {
".read": true,
".write": true
}
}
问题出在你同步的路径上:
const rootRef = firebase.database().ref().child('tier2list');
你的数据库中没有childtier2list
,所以你会得到一个空的object。
相反,您正在尝试同步整个数据库,您可以通过以下方式实现:
const rootRef = firebase.database().ref()
当 Frank 回答时,我正在讨论这个问题。他有正确的答案,但为了使用 David 的代码,您的数据库应该如下所示:
在他的遍历中,他已经在 angular
节点内部,所以这可能有点混乱。
我还为该项目创建了一个 Github 存储库,以防有人在自己制作时遇到问题: https://github.com/LukeSchlangen/angularFireQuickDemo