2017-10-18 89 views
-1

我有一個表單,可以將許多圖像上傳到不同的位置,抓取downloadURL並使用ref.update將圖像的URL存儲在正確的DB參考中。.update密鑰的動態命名Firebase

我不知道是否有可能使用一個變量.update能夠通過抓住活動文件輸入的名稱動態地更改密鑰:

handleImgUpload() { 
    var activeInput = document.activeElement.name; 
    // set up storage refs, upload file then... 
    imgStorageRef.child(filename).getDownloadURL().then(function(url){ 
    ref.update({ 
     activeInput: url // HERE IS WHERE I WANT THE VALUE STORED IN activeInput 
}) 

在這個例子中ref進行更新將獲得字符串'activeInput'作爲關鍵字。有沒有辦法添加存儲在var activeInput中的值?

回答

1

這聽起來像你試圖動態設置對象的屬性。爲此,請使用[]表示法。所以:

handleImgUpload() { 
    var activeInput = document.activeElement.name; 
    // set up storage refs, upload file then... 
    imgStorageRef.child(filename).getDownloadURL().then(function(url){ 
    var updates = {}; 
    var key = "activeInput"; 
    updates[activeInput] = url; 
    ref.update(updates) 
    }) 
}