0

这是我在云计算功能的代码删除火力地堡的第一个节点。通过云功能

这是我的数据库:

database

我怎样才能删除其下的“游戏”第第一排,所以在这种情况下,“1:1”

+0

你的代码使用'slotgame',但数据库有'slot'。 –

+0

@FrankvanPuffelen Woops,没有注意到。我改变了它,但我得到完全相同的输出。 – John

回答

1

当你调用limitToFirst()创建查询。当您针对Firebase数据库执行查询时,可能会有多个结果。所以快照包含了这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。

你的代码需要处理这个列表,它目前没有。

return db.ref(`/users/${event.params.uid}/server/slot/games/`).limitToFirst(1).once('value').then(function(slotValues) { 
    if (slotValue.exists()) { 
    var location; 
    slotValues.forEach(function(slotValue) { 
     const key = slotValue.key 
     const wonIndex = slotValue.val() 
     location = `/users/${event.params.uid}/server/slot/games/${key}`; 
    }); 
    return db.ref(location).remove().then(snap => { 
     return event.data.adminRef.remove() 
    }); 

    }); 
}) 

这完全适用于单个位置。如果您有更多位置,请使用单个多位置更新(null值指示要移除的位置),或使用Promise.all()的多个承诺。

+0

Yey这个作品:D – John