2016-07-15 69 views
2

的火力數據庫push方法將對象添加到數據庫孩子唯一的密鑰,例如,火力地堡推到數據庫對象的數組

postsRef.push({ 
    author: "gracehop", 
    title: "Announcing COBOL, a New Programming Language" 
}); 

提出類似的數據庫中的以下

"posts": { 
    "-JRHTHaIs-jNPLXOQivY": { 
     "author": "gracehop", 
     "title": "Announcing COBOL, a New Programming Language" 
    } 

但是,如果我使用對象數組的push方法,例如

postsRef.push({ 
     { 
      author: "gracehop1", 
      title: "Announcing COBOL, a New Programming Language" 
     }, 
     { 
      author: "gracehop2", 
      title: "Announcing COBOL, a New Programming Language" 
     }}); 

我得到一個唯一的鍵與數據庫中列舉的對象,即

"posts": { 
    "-JRHTHaIs-jNPLXOQivY": { 
     "0": { 
     "author": "gracehop1", 
     "title": "Announcing COBOL, a New Programming Language" 
     }, 
     "1": { 
     "author": "gracehop2", 
     "title": "Announcing COBOL, a New Programming Language" 
     } 
    }} 

有什麼辦法push對象在一個事務中的陣列,使得我得到一個唯一的密鑰爲陣,即在每一個對象,看起來像

"posts": { 
     "-JRHTHaIs-jNPLXOQivY": { 
      "author": "gracehop1", 
      "title": "Announcing COBOL, a New Programming Language" 
     "-JRHTHaIs-jNPLXOQivZ": { 
      "author": "gracehop2", 
      "title": "Announcing COBOL, a New Programming Language" 
      } 
     }} 

回答

6

一個鮮爲人知的事實的結果是,你可以調用push()不帶任何參數它只會爲你生成一個位置/推送ID。與多位置更新(見herehere),你可以這樣做:

var key1 = postsRef.push().key; 
var key2 = postsRef.push().key; 
var updates = {}; 
updates[key1] = { 
     author: "gracehop1", 
     title: "Announcing COBOL, a New Programming Language" 
    }; 
updates[key2] = { 
     author: "gracehop2", 
     title: "Announcing COBOL, a New Programming Language" 
    }; 
ref.update(updates); 
+2

因此,在短期沒有辦法進行多次推一氣呵成呢? – Gardezi