私の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;
});
};
}
Webページ:
<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()
は、Webページから呼び出されたときに、10 $digest() iterations reached
エラーが生成されていることですWebページ上のデータはリアルタイムで更新されなくなりますFirebase DBにpdateされています。
どうすれば解決できますか?私はFirebase-Utilを見てきましたが、この場合に具体的にどのように利用するのかは不明です。 Firebase Docsから
ありがとう、しかしそれをon()に変更すると'10 $ digest( )iterations reached 'エラーが発生しました。 – user2181948
[この回答](https://stackoverflow.com/a/17129274/7004388)が役に立ちます。提供されたリンクに投稿されたすべての回答を参照してください。 @ user2181948 – Chip