【问题标题】:How to save nested objects in my Firebase db如何在我的 Firebase 数据库中保存嵌套对象
【发布时间】:2016-11-28 23:16:30
【问题描述】:

我创建了一个用于添加类别的视图和一个用于产品的视图。我想将产品添加到类别中。这是可行的,但将其结构如下而不是我在屏幕截图中得到的结构可能会更有效。

products 
    - KXbMe8zo14TyOYDJh4q
          cat: {
                 id: "-KXXJY-i7Avnqw8IMqR", name: "Starters"
               }

这种结构会更好吗?我应该如何实现它?我期待整个 cat 对象被传入,因为我将 product.cat 引用为模型。

如果我将表单元素中的value 设置为{{cat}},我会在数据库中得到这个:

"{\"name\":\"Kebabs\",\"$id\":\"-KXXJl0Ice17zDIYF_Xt\",\"$priority\":null}"

这看起来对吗?

<select ng-model="product.cat">
    <option ng-repeat="cat in cats" value="{{cat.$id}}">{{cat.name}}</option>
</select>  

我正在检索这样的类别:

var cats = $firebaseArray(firebase.database().ref('category'));
cats.$loaded().then(function(){
                    $scope.cats = cats;
                });

【问题讨论】:

    标签: angularjs firebase firebase-realtime-database angularfire


    【解决方案1】:

    我得到了以下结果:

    var cats = $firebaseArray(firebase.database().ref('category'));
    cats.$loaded().then(function(){
                        $scope.cats = cats;
                    });
    
      $scope.addProduct = function() {
        console.log($scope.product);
        var category = {};
    
        for(var i=0; i<$scope.cats.length; i++){
            if($scope.cats[i].$id == $scope.product.catid){
                category.id = $scope.cats[i].$id;
                category.name = $scope.cats[i].name;
            }
        }
    
        //var record = firebase.database().ref().child('products/category').push($scope.product.cat);
        //var record = firebase.database().ref().child('products').push($scope.product);
        var record = firebase.database().ref().child('products').push({
                'category' : {id: category.id, name: category.name},
                'name' : $scope.product.name,
                'price' : $scope.product.price
            });
        if(record.key){
            $scope.productSuccess = true;
        } else {
            $scope.productSuccess = false;
        }
      };
    

    这在我的数据库中为我提供了以下信息:

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      相关资源
      最近更新 更多