如何将数组推入 Firebase set() 函数中的 json 对象?
How to push array into json object in Firebase set() function?
我想将新项目推送到我的 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)...
if console.log($scope.orders) 然后得到
有人可以帮忙吗?
提前致谢!
在 Firebase 中,Push
方法使用唯一键和 returns 其引用生成新的 child 位置。所以你已经有了 child 和你的 child 的引用。您不需要像您尝试的那样向您的 orderRef 添加 child。
你可以简单地做到这一点
var newOrderKey = orderRef.push(); // Return the ref of the futur child
newOrderKey.set(newJson);
angular 中的 object 也存在问题,'$$hashKey' 中的 '$' 是问题所在。 Angular 创建 $$hashKey 属性。
这应该可以解决问题
newJson['products'].push( angular.fromJson(angular.toJson($scope.orders)));
我想将新项目推送到我的 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)...
if console.log($scope.orders) 然后得到
有人可以帮忙吗?
提前致谢!
在 Firebase 中,Push
方法使用唯一键和 returns 其引用生成新的 child 位置。所以你已经有了 child 和你的 child 的引用。您不需要像您尝试的那样向您的 orderRef 添加 child。
你可以简单地做到这一点
var newOrderKey = orderRef.push(); // Return the ref of the futur child
newOrderKey.set(newJson);
angular 中的 object 也存在问题,'$$hashKey' 中的 '$' 是问题所在。 Angular 创建 $$hashKey 属性。
这应该可以解决问题
newJson['products'].push( angular.fromJson(angular.toJson($scope.orders)));