2016-08-01 22 views
0

我不確定child_changed如何與表一起使用。 child_added將工作在填充表中,但是當數據發生一些變化時,那麼如何確定哪一行需要更新?Firebase:如何使用更改了表格的孩子?

官方文檔建議child_addedchild_changedchild_removed一起使用,但我不知道後者2將如何工作。

無論何時修改子節點,都會觸發child_changed事件。這包括對子節點的後代的任何修改。它通常與child_added和child_removed事件一起使用,以響應對項目列表的更改。傳遞給事件偵聽器的快照包含子對象的更新數據。

我所能想到的就是存儲一個ID與行數據,然後監聽更改,然後獲取存儲的ID並相應地更改行數據。

+0

也就是說的確是處理Firebase數據列表的常用方式:在收到相關的child_事件時,將id與行相關聯並更新/移動/刪除。你有問題嗎? –

回答

1

如果你和我一樣,那麼你可能會使用數據ID作爲數據中的關鍵字。 EG:

{ 「客戶」: { 「62562」: { 「名」: 「喬博客」 } } }

firebase.database().ref('/customers/62562').on('value', function(snapshot){ 
    console.log(snapshot.val()); 
}); 

上面的代碼讓你變成'/ customers/62562'中包含的數據,但您不知道它來自哪裏。你需要看快照的參考,如果你想知道在客戶,如:

var customerId = snapShot.ref.key   returns '62562' 

你可以走得更遠了分公司,並找出哪些分支機構持有該客戶

var parentName = snapShot.ref.parent.key   returns 'customer' 
相關問題