gpt4 book ai didi

firebase - collection$.valueChanges() 只返回更改还是整个集合?

转载 作者:行者123 更新时间:2023-12-04 10:15:01 26 4
gpt4 key购买 nike

我有点不清楚 valueChanges 实际上做了什么——如果我的订阅看起来像这样:

( typescript /角度)

    this.accountsCollection = this.firestore.collection(`budgets/${budgetId}/accounts`);
this.accounts$ = this.accountsCollection.valueChanges();
this.accountsSubscription = this.accounts$.subscribe(accountData => {
AccountsManager.getInstance().loadData(accountData)
})

每次更新、添加、删除集合文档时,我是要获取整个集合,还是仅获取更改的文档。

如果我只想查看订阅中的更改(添加/更新/删除),如何获得订阅?

最佳答案

每当添加、更改或删除任何文档时,您的回调都会收到整个文档集。只要监听器处于事件状态,文档集就会缓存在内存中,并且不需要每次都传输每个文档 - 只有增量实际上是通过连接发送的。

我建议通读 streaming collection data 的文档.

在您的代码中,如果您想知道实际更改了哪些文档,valueChanges不会帮助你辨别这一点。正如文档所述:

Why would you use it? - When you just need a list of data. No document metadata is attached to the resulting array which makes it simple to render to a view.



您应该改为使用 snapshotChanges() .它会给你 DocumentChangeAction您可以使用 type 对象来告诉您哪些文档实际发生了更改。

关于firebase - collection$.valueChanges() 只返回更改还是整个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61104537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com