【问题标题】:Retrieving child records from firebase using unique auto-generated keys使用唯一的自动生成键从 firebase 检索子记录
【发布时间】:2016-07-23 04:03:48
【问题描述】:

场景是,

我们在 firebase 上的数据结构如下所示

图片基于示例数据库,其中 Posts 节点下的 post1、post2 是随机生成的键,如“YyhsyyHyzhh-Ke”等,comment1、comment2 也是随机生成的键。

我的问题是我想从 firebase 获取所有帖子和相关 cmets,正如您在 post1 下看到的那样,有一个 cmets 节点包含与 post1 相关的 cmets 的键,但我无法获取 cmets 的键,所以我可以浏览到该评论的文本

见下面的代码

    appMainModule.controller('GetCtrl', ['$scope', '$firebase', function ($scope, $firebase) {






         var firebaseObj = new Firebase("FirebaseURL/Posts");

         var sync = $firebase(firebaseObj);
        $scope.articles=sync.$asArray();

  $scope.articles.$loaded(function (data) {
         var mainVar ;
         for (var i = 0; i < data.length; i++) {
             mainVar = data[i];
             var commentsWithIds=mainVar.Comments;
             //how to fetch keys side of data from commentsWithIds as I dont know rendomly generated keys

         }
         });

我想要获取 cmets 密钥,以便像这样 new Firebase("FirebaseURL/Comments"+CommentsAutoGeneratedKey) 那样创建 URL。

【问题讨论】:

    标签: angularjs firebase-realtime-database angularfire


    【解决方案1】:

    如果我理解你的问题,你可以使用Object.keys()方法:

    var comments = {  
      "comment1":{  
        "text":"this is first comment"
      },
      "comment2":{  
        "text":"this is 2nd comment"
      },
      "comment3":{  
        "text":"this is third comment"
      }
    };
    
    console.log(Object.keys(comments));

    【讨论】:

    • 感谢它有效。暂时我会使用它。但我不确定这是不是更好的方法,因为 $firbaseObject.$id, $on,$once 函数还提供了获取密钥的方法,但我无法在我的 angularfire 项目中使用它们,因为它给了我函数未定义的错误。
    猜你喜欢
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多