我使用以下代码向Firebase添加新数据。

var postData = {
            NSN: NSN,
            ProductName: ProductName,

            AssociatedContractNumber: AssociatedContractNumber,
            ItemQuantity: ItemQuantity,
            viewable_by: uid,
        };

        InventoryID = firebase.database().ref().child('Posts').push().key;

        var updates = {};
        updates['/Businesses/' + uid + '/Inventory/' + InventoryID] = postData;


我想做的是在子项“ NSN”中创建一个NSN列表,而无需唯一生成的帖子ID。但是所有尝试仅将NSN添加到子NSN的尝试都将旧的替换为新的NSN。因此,我得到的不是10个不同的NSN,而是1个。
我最初使用此代码

var postNSN = {
            NSN: NSN,
         };
       updates['/Businesses/' + uid + '/National_Stock_Numbers/' + NSN] = postNSN;


以上仅将现有号码替换为新号码,而不添加新号码

我也试过了

  var NSNref = database.ref('/Businesses/' + uid + '/NSNs/')
  NSNref.set({
            NSN: NSN,
        })


但是什么也没发生。如何在没有唯一生成的密钥的情况下向子NSN添加新的NSN?

最佳答案

只需使用push()

假设您有和NSN一样的对象

var NSN = { ... }
firebase.database().ref().child('Posts').push(NSN);


这样做将始终将项目推送到NSN阵列的末尾,而Firebase将在推送时小心创建唯一密钥。

请记住,firebase不了解数组,仅了解对象。

07-28 04:24