私はFirebase DBからオブジェクトにロードし、コントローラの変数に割り当てます。これはFirebase関数(コメント付きのコードを参照)を使用していたときに完全に機能しましたが、3ウェイバインディングを使用してAngularFireで同じことをしようとしています。
plannerオブジェクト(「You Are Here」も)がコンソールに決して印刷しないので、$ loadedイベントは起動しないようです。 user.uid文字列は期待どおりにコンソールに出力され、コメントアウトされたコードは完全に機能します。あなたの助けを前にありがとう。
(サイド質問:情報が取得されたときにコメントアウトコードでは、私は、Webページ上のフォームを確実にするためにevalAsyncを利用して、実際に更新する - これは良い習慣です?)
マイコントローラ:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
console.log("Currently logged in user...");
console.log(user.uid);
$scope.user = user;
var ref = firebase.database().ref('planners/' + $scope.user.uid);
var planner = $firebaseObject(ref);
planner.$loaded().then(function() {
console.log("You are here")
console.log(planner)
})
.catch(function(error) {
console.log(error)
})
// firebase.database().ref('planners/' + $scope.user.uid).on('value', function(response) {
// if (response.val() != null) {
// $scope.$evalAsync(function() {
// $scope.planner = response.val();
// })
// }
// });
}
else {
console.log('No user logged in')
$state.go('login')
}
})