json - angularfire 中的自定义数据树名称

标签 json angularjs database firebase

我正在使用一个 $routeProvider,它根据我的 firebase 数组中的条目 ID 制作页面。

.state('app.Ketel', {
          url: '/ketels/:id',
          views: {
            'menuContent': {
              templateUrl: 'templates/ketels/template.html',
              controller: 'ketelsCtrl'
            }
          }
        })




   ketelapp.controller('ketelsCtrl', function ($scope, $routeParams, $stateParams, $state, firebaseService, $firebaseArray, $firebase){

        $scope.ketels = firebaseService.all;
        $scope.ketel = firebaseService.get($stateParams.id - 1);

      })

我的 Firebase 数据树

ketels ->
         1 --> name : blablabla;
               brand : bla bla bla;
         2 --> name : blablabla;
               brand : bla bla bla;

现在我正在尝试制作一个脚本,以 id 格式将项目添加到数组

ketelapp.controller('pushCtrl', function ($scope, $firebaseArray, $firebase, $firebaseObject){
      var id = 3;
      var ref = new Firebase("https://url.firebaseio.com" + "/ketels/" + id);
      // create a synchronized array
      $scope.ketels = $firebaseArray(ref);  

      var ketels = $scope.ketels;

      $scope.addMessage = function(name, brand, desc) {


        $scope.ketels.$add({
          name: name,
          brand: brand,
          desc: desc

        });

      };

})

现在我的数据添加了正确的 ID,但在数据树的更深处它仍然使用随机数据 key ,这会弄乱我的代码。

ketels ->
         1 --> random key --> name : blablabla;
                              brand : bla bla bla;
         2 --> random key --> name : blablabla;
                              brand : bla bla bla;

有什么方法可以禁止 firebase 使用他们自己自定义生成的数据 key 吗?

--编辑--

或另一种修复路由的方法

最佳答案

当然可以。

您正在调用 $firebaseArray.$add():

$scope.ketels.$add({...

这意味着您要求 Firebase 生成所谓的推送 ID。

如果你不想这样,你可以:

$scope.ketels.$ref().child('your-unique-id').set({...

请注意,Firebase recommends against using array indices in multi-user apps 有充分的理由.忽略那些后果自负。

关于json - angularfire 中的自定义数据树名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828507/

相关文章:

mysql - 如何正确避免Mysql Race Conditions

javascript - ng-型号 : empty strings should be null

android - 在 ionic 中加载 url 显示空白屏幕

ruby-on-rails - 可以将hadoop用作Rails应用程序上的ruby的数据库/后端吗?

javascript - 从 ajax json 请求,如何动态地将对象添加到数组中以便我可以循环遍历它们?

javascript - 'destroyed' Controller 中的 Angular $rootScope $on 监听器继续运行

mysql - mysql索引中的多列

php - 如何在 PHP 中从 Ajax Jquery serializeArray() 获取数据?

Javascript - 根据其他 json 值过滤 geojson

ios - 使用 swift 发布到安全 API