2017-06-22 21 views
1

我已經完成了關於setValue()和updateChildren()的研究。我已經測試了他們兩個,以從Firebase數據庫添加和更新數據。從我所瞭解到的他們倆都做了同樣的事情,並對他們做了一些研究。setValue()和updateChildren()之間的區別?

從我學到的東西。 setValue()與類對象一起使用,而updateChildren()與Map或HashMap一起使用。如我錯了請糾正我。

我的問題是如上所述,setValue()和updateChildren()有什麼區別?

+1

當使用'setValue()'時,您可能會發現查看這個問題的用戶對數據被刪除感到困惑。使用setValue意味着只使用提供的類對象來替換數據(並且因此不在該類中的其他字段被刪除)。 https://stackoverflow.com/questions/44621301/android-firebase-user-specific-real-time-data-is-removed-when-user-logs-back-in#comment76267592_44621301 –

+1

@LewisMcGeary我已經看到了問題和非常感謝。我想我現在知道這個區別了。 – UmarZaii

+0

@UmarZaii你知道'setValue()'和'updateChildren()'有什麼區別嗎?.. ..你能解釋一下嗎?thnks –

回答

4

'setValue'方法是完全用新數據替換文檔(指定參考)。

'updateChildren'方法只更新特定的字段或添加這些字段,如果它們以前不存在的話。

您經常可以使用這些方法得到相同的結果,但實際上它們是不同的。

+0

'updateChildren'可以用新數據替換文檔嗎? – UmarZaii

+0

是的,如果您將爲文檔中已經存在的所有字段指定新數據 –

+0

但是這不是基本上它們都做了同樣的事情,反之亦然? – UmarZaii