【问题标题】:Firebase and AngularJS, How to retrieve a value from a firebaseArrayFirebase 和 AngularJS,如何从 firebaseArray 中检索值
【发布时间】:2017-10-21 13:12:24
【问题描述】:

看起来非常非常简单。但我做不到。 我只想在我的控制器中获取我的 Firebase DB 的值。 Firebase 数据库是这样的:

users {
    30549545 {
        name: "Marcelo"
        lastName: "Forclaz"
        years: 24
    }
}

在我的控制器中,我编写了以下代码:

app.controller('usersCtrl', function($scope, $firebaseArray) {
    var ref = firebase.database().ref('users');
    $scope.userdata = $firebaseArray(ref);
});

在 HTML 代码的 ngRepeat 中,迭代工作正常。但是我需要在控制器中获取“年”值才能将其用于另一个命令,¿我该怎么做?我已经尝试了几种不同的方法,但我没有得到想要的结果。我意识到从 Firebase 宽度 AngularJS 检索数据并不比使其宽度简单和纯 JavaScript 容易。

【问题讨论】:

    标签: angularjs firebase firebase-realtime-database data-retrieval


    【解决方案1】:

    你必须等到加载用户数据:

    app.controller('usersCtrl', function($scope, $firebaseArray) {
    var ref = firebase.database().ref('users');
    $scope.userdata = $firebaseArray(ref);
    $scope.userdata.$loaded()
        .then(function(){
            console.log($scope.userdata);
        });
    });
    

    【讨论】:

    • 好的。但是,您现在如何获得“年”值?我编写了您的代码,控制台日志返回带有参考数据的整个对象。我只需要他的年值。我试过 console.log($scope.data.years) 但返回 undefined。
    【解决方案2】:

    终于,我明白了!

    $scope.userdata.$ref().once('value', function(snap) {
        angular.forEach(snap.val(), function(index)) {
            console.log(index.years)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多