Firebase请求:操作`array`的资源配置出错。预期的响应包含一个对象但获得了GET

时间:2015-10-09 18:38:15

标签: arrays firebase

我在这个问题上发现了很多帖子,并尝试实施一些建议的解决方案here:

但它仍然无效,我想知道使用firebase是否会成为一个问题。我创建了一个链接到Firebase数据源的服务:

 servicesModule.factory("postsDB", function($resource){
    return $resource("https://<datasource>.firebaseio.com/Posts/:id", {
        id: "@id"
     },
     {
         update: {
             method: "PUT",
             isArray : true
         }
    });
});

然后我的控制器:

controllersModule.controller('BlogCtrl', ["$scope", "postsDB", function($scope, postsDB) {

        postsDB.query(function(posts){
             $scope.myPosts = posts;
         })
}]);

ng-repeat结果:

<div class="col s12 m6"  id="postItems" ng-repeat="post in myPosts">
<h3>{{post.Title}}</h3>
{{post.Body}}
{{post.Author}}
</div>

我真的不明白:

错误:$ resource:badcfg 响应与配置的参数

不匹配

意味着(和通常的角度误差一样),除了它显然是期待一个数组,我虽然使用postsDB.query的全部意义就是这样做。我添加了isArray:上面是true,但它没有任何效果。如果资源作为JSON帖子数组存在,为什么我的帖子没有被加载?

1 个答案:

答案 0 :(得分:0)

偶然事项:您需要将.json附加到路径以使用Firebase的REST API,其次,您需要专门为查询方法设置isArray: false。< / p>

servicesModule.factory("postsDB", function($resource) {
    return $resource("https://<datasource>.firebaseio.com/Posts/:id.json", {
                id: "@id"
            },
            {
                update: {
                    method: "PUT",
                    isArray: true
                },
                query: {
                    method: "GET",
                    isArray: true
                }
            });
});