【发布时间】:2017-12-13 14:29:23
【问题描述】:
我的 Web 应用程序使用 Firebase JS 和 AngularJS 来显示事件注册列表以及已注册每个事件的用户。事件和用户数据在不同的数据库节点中。
数据库:
"event_registrations" : {
"$event_id" : {
"$user_id" : {
"registration_date" : "..."
"total_amount" : "...",
}
}
},
"users" : {
"$user_id" : {
"events" : {
"event_id" : 1
},
"profile" : {
"email" : "..."
"name" : "...",
// ...
}
},
}
角度:
function MyController($scope, $firebaseObject) {
// Retrieve event data
$scope.events = scope.firebaseRef.child('event_registrations');
// Retrieve user_data
$scope.getUserData = function(userID) {
var ref = $firebaseObject(scope.firebaseRef
.child('users')
.child(userID)
.child('profile'));
ref.$ref().once("value", function(dataSnapshot) {
var data = dataSnapshot.val();
$scope.user_data = data;
});
};
}
网页:
<div ng-repeat="event in event_registrations">
<table>
<tr>
<tr ng-repeat="(user_id, user_data) in event">
{{getUserData(user_id)}}
<td>{{user_data.email}}</td>
<td>{{user_data.name}}</td>
</tr>
</tbody>
</table>
</div>
问题是当从网页调用getUserData()时,会产生10 $digest() iterations reached错误,并且网页上的数据在Firebase DB中更新时停止实时更新。
如何解决?我看过 Firebase-Util,但不确定在这种情况下如何专门使用它。
【问题讨论】:
标签: angularjs firebase firebase-realtime-database angularfire