2017-01-02 75 views
0

我试图将两个相关项目添加到我的Firebase数据库。我想推送一个项目,然后获取该项目的新创建的密钥,并将其用作另一棵树中第二个项目的密钥。我试过查询数据库以获取创建的最后一个密钥并将其用作第二次推送的密钥,但它仍然只是为其生成一个新密钥。这里是我使用的代码:使用Firebase按键作为第二个按键的关键

save: function() { 
    if (this.$.document.isNew && (this.editableCard.title || this.editableCard.body)) { 
     return this.$.document.save(this.cardsPath).then(function() { 
      this.$.document.reset(); 
      var sceneRef = firebase.database().ref().child(this.cardsPath); 
      var scene = sceneRef.orderByKey().limitToLast(1); 
      var sceneKey = scene.key; 
      this.$.document.save('/documents/', sceneKey); 
     }.bind(this)); 
    } 
    return Promise.resolve(); 
} 

(我使用Polymer,我的出发点是Polymerfire的note-app演示)。

关于如何检索第一次推送的新密钥并将其用于第二次推送的任何想法?谢谢!

编辑

我发现火力地堡的文档阅读的答案,并写入数据库的Web。 Link

回答

1

push()立即返回DatabaseReference。您可以使用getKey()来询问引用它的关键是什么,然后使用该字符串更新数据库中的另一个位置。

0

您可以在原始数据库参考访问关键性能和使用,作为第二个关键,像这样:

let firstObjRef = firebase.database().ref('/first/path/).push(firstObj, (error) => { 
    videoObj["roomUploadedTo"] = this.roomName; 
    var updateObj = {}; 
    updateObj[videoObjRef.key] = videoObj; 

    firebase.database().ref('/second/path/').update(updateObj).then((e) => { 
    console.log('update went through. booyah! ' + e); 
    })