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