2017-05-30 45 views
0

我想發送從我的NodeJS服務器到Firebase數據庫的兩個距離之間的時間差。如何將數據添加到Firebase而無需替換使用NodeJS?

function sendDatabase(dbName, payload1) { 
    var timeNow = getTime(); 
    console.log(timeNow); 
    var ref = db.ref(dbName); 
    ref.set({difference:payload1}); 
} 

DBNAME = IpBBEfCob0c1GaYkvAzog9rVdKn1/

payload1是我要發送的時間差。

dbName是數據庫中的子節點,我想每次執行時都要將payload1保存爲子節點dbName

但是每次這個函數執行時它都會替換它並且不會創建新的條目。我知道這是因爲difference的屬性名稱每次都是相同的,因此我在Google上搜索瞭解我是否可以將其設置爲獨一無二的,以便它不會被替換,但我找不到適合我的問題的正確答案。

我是Firebase的初學者,對此非常感謝。

+0

你試過'推()'? https://firebase.google.com/docs/reference/js/firebase.database.Reference#push –

+0

是的,我試過推。但是,它會創建一個唯一的ID節點,並在其下面保存一個實例。下次它將創建另一個節點並保存。我想要的是將所有內容都放在同一個節點中 –

+1

你想要同一個「差異」鍵的多個實例嗎? –

回答

2

不能有多個相同的實例key。那麼它不再是key了。你可以這樣做:

dbName 
- difference : 00 
- difference : 01 
- difference : 02 
- difference : ... 

你可以做的是有差異的多個孩子:

dbName 
    + difference 
    - khghjgfvhgfh : 00 
    - khghjgfvhgfi : 01 
    - khghjgfvhgfj : 02 
    - khghjgfvhgfk : ... 

通過pushing唯一的孩子:

db.ref(dbName).child("difference").push(payload1) 

push訂單自動按時間順序兒童。

當你查詢你的節點,LimitToLast,首先,等...

db.ref(dbName).child("difference").limitToLast(2) 
+0

謝謝。我現在試試這個 –

+0

謝謝你這麼多。這工作完美 –

相關問題