2017-10-18 56 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) 
    }) 
}