javascript - 如何在 Firebase set() 函数中将数组插入 json 对象?

标签 javascript angularjs firebase firebase-storage jsobject

我想将新项目推送到我的 Firebase 数据库。

Json 对象应如下所示:

var newItem = {
            'address': "Кабанбай батыр, 53",
            'cityId': 1,
            'courierName': "Максат",
            'dispatcherId': "somedispatcherId",
            'info': "привезти к 2ому подъезу в 11 ч вечера", 
            'isCompleted': 0,
            'isProceeded': 0, 
            'name': "Адиль Жалелов" ,
            'paymentMethod': "наличка" ,
            'phone': "87775634456" ,
            'price': 5000,
            'products': []
        }

问题是我无法将对象数组($scope.orders)推送到newItem

我试图插入这个$scope.orders:

   $scope.addOrder = function(){
        var orderRef = 
        firebase.database().ref().child('Orders').child('Astana');
        var newOrderKey = orderRef.push().key;
        var newJson = {
            'address': "Кабанбай батыр, 53",
            'cityId': 1,
            'courierName': "Максат",
            'dispatcherId': "somedispatcherId",
            'info': "привезти к 2ому подъезу в 11 ч вечера", 
            'isCompleted': 0,
            'isProceeded': 0, 
            'name': "Адиль Жалелов" ,
            'paymentMethod': "наличка" ,
            'phone': "87775634456" ,
            'price': 5000,
            'products': []
        };
         newJson['products'].push( $scope.orders);
        /*for (var i =0; i < $scope.orders.length ; i++){
            newJson['products'].push( $scope.orders[0]);
        } */

        console.log($scope.orders,newJson)
        orderRef.child(newOrderKey).set(newJson); 
    } 

但我收到错误:Reference.set 失败:第一个参数在属性中包含无效键 ($$hashKey)...

如果console.log($scope.orders)然后得到

xcxx

谁能帮忙?

提前致谢!

最佳答案

在 Firebase 中,Push 方法使用唯一键生成新的子位置并返回其引用。所以你已经有了 child 和 child 的引用资料。您不需要像您尝试的那样向 orderRef 添加子项。

你可以简单地做到这一点

var newOrderKey = orderRef.push();  // Return the ref of the futur child
newOrderKey.set(newJson); 

Angular 对象也存在问题,“$$hashKey”中的“$”就是问题所在。 Angular 创建 $$hashKey 属性。

这应该可以解决问题

newJson['products'].push( angular.fromJson(angular.toJson($scope.orders))); 

关于javascript - 如何在 Firebase set() 函数中将数组插入 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720963/

相关文章:

javascript - Puppeteer 找不到 Xpath

javascript - 在 jQuery 对话框的部分 View 中提交表单后返回数据

angularjs - Dojo:带数据绑定(bind)的循环

firebase - flutter : How to clear Firebase cache after logging out from app?

node.js - Google Firebase Web App - 涉及 Cloud Functions 和 Firestore 的错误

javascript - 使用 JavaScript 动态样式/格式化表格的动态添加列以右对齐

javascript - 从 AJAX 调用成功返回 '0' 或 0?

javascript - 如何使用 Angular js 从另一个数组创建 JSON 对象数组

javascript - 范围变量在 REST API POST 请求中丢失值

Firebase Auth Ui Google 登录代码 :10, 消息:10: