在Firebase函数中更新不带id的对象子对象

时间:2018-10-10 16:24:38

标签: firebase firebase-realtime-database google-cloud-functions

希望你能帮助我。

在触发Firebase数据库功能时,我正在尝试更新 一个孩子的对象而又不知道ID。

enter image description here

因此,我想仅通过了解类别元素来更新类别元素,而又不了解乘积元素。

请帮助...

1 个答案:

答案 0 :(得分:1)

您可以先检索类别数据。假设您知道第一个键(LNBxRLsPR0OY8-_Cnm)并且您只有一个类别项(如果一个以上的类别将用另一个代码捕捉来说明)

firebase.database().ref('product/' + key + '/categoria').once('value', snapshot=>{
  if (snapshot.exists()) var categoriaKey = Object.keys(snapshot.val()[0])
  firebase.database().ref('product/' + key + '/' + categoriaKey).set(newCategoriaObject)
})

编辑:

productList={}
firebase.database().ref('product').once('value', snap=>{
   snap.forEach(p=>{
      productList[p.key]=p.val().name; 
   })
}) 

具有上述产品列表对象数组。场景:您需要向用户显示产品名称列表。用户选择产品后,即可使用以下功能检索密钥。

function findKey(productList, selectedProductName) { 
     for (let key in productList)
        if (productList[key] === selectedProductName) return key;
}

key = findKey(productList, selectedProductName);

因此,通过以上简单代码,您将获得由用户选择的产品密钥。如果您没有其他情况:)