Angularjs Firebase获取数据列表

Angularjs Firebase getting a list of data

本文关键字:列表 数据 获取 Firebase Angularjs      更新时间:2023-09-26

我正在尝试从Firebase获取数据。我做练习来更好地学习Firebase,我的应用程序就像一个消息应用程序。

我的问题是,我试图得到这些消息数据,但因为他们有一个唯一的id,我不能到达他们。我怎样才能到达messagecontents, dates

下面是我的数据库结构:
angularish
    -> <id>
        -> "sender" : "john"
        -> "to" : "sarah"
        -> "date" : "16/09/2016"
        -> "messageContent" : "Something like a long text..."
    -> <id>
        -> "sender" : "john"
        -> "to" : "sarah"
        -> "date" : "16/09/2016"
        -> "messageContent" : "Something like a long text..."
    -> <id>
        -> "sender" : "john"
        -> "to" : "sarah"
        -> "date" : "16/09/2016"
        -> "messageContent" : "Something like a long text..."
下面是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test3 Angular</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
    <script src="https://www.gstatic.com/firebasejs/3.4.1/firebase.js"></script>
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-auth.js"></script>
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-database.js"></script>
    <!-- Leave out Storage -->
    <!-- <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-storage.js"></script> -->
    <script>
      // Initialize Firebase
      firebase.initializeApp(config);
    </script>
    <script>
        var app2 = angular.module("theapp",[]);
        app2.controller("generalController",function($scope){
          var database = firebase.database();
          var rootRef = database.ref();
          var subRootRef = rootRef.child("angularish");
          $scope.messages = [];
          rootRef.push({
                "sender":"y",
                "to" : "x",
                "messageContent" : "Something like a long text",
                "date" : "10/06/2016"
          });
          rootRef.on("value",function(snapshot){
            $scope.messages = snapshot.val();
            console.log(snapshot.val());
          });
        });
    </script>
</head>
<body>
    <div class="container" ng-app="theapp" ng-controller="generalController">
        {{ 1+1 }}
        <ul>
            <li ng-repeat="message in messages">
                {{ message.messageContent }}
            </li>
        </ul>
    </div>
</body>
</html>

你错过了一个$scope.$apply(),因为你在角消化循环之外。

rootRef.on("value",function(snapshot){
    $scope.messages = snapshot.val();
    console.log(snapshot.val());
    $scope.$apply();
});