如果我在同一个应用程序中多次调用文档X上的onSnapshot(假设为Locations/x),Firestore Web客户端是否通过组合订阅来优化?即:1.每次文件更新时,是否需要支付一次或多次读取费用?1.我的客户会收到多个网络呼叫还是每次文档更新只收到一个?我正在使用Web Firebase v9.16.0
onSnapshot
h6my8fg21#
如果我在同一个应用程序中对文档X(比如说Locations/x)多次调用onSnapshot,Firestore Web客户端是否会通过合并订阅来优化它?默认情况下,禁用Web的脱机持久性。因此,如果您希望拥有数据库的本地副本,则必须通过调用enablePersistence方法来启用它。这意味着当附加侦听器时,必须为查询返回的每个文档支付读取费用。所有后续调用都将从该高速缓存中读取,但前提是Firebase服务器上没有任何更改。所以如果你读了一个文档,那么你就必须为一次阅读付费。所有其他读操作都将来自该高速缓存。所有来自该高速缓存的读取都没有成本。但请记住,根据有关定价的官方文档:如果启用了离线持久性,并且监听器断开连接超过30分钟(例如,如果用户离线),则将向您收取读取费用,就像您发出了全新的查询一样。所以如果你离线超过30分钟,当监听器重新连接时,你必须为新的读取付费。1.每次文件更新时,是否需要支付一次或多次读取费用?更新操作与读取操作没有任何关系。因此,当您更新文档时,没有应该支付的读取操作。1.我的客户会收到多个网络呼叫还是每次文档更新只收到一个?连接监听器后,每次更新都会获得一个连接。不会触发其他任何内容。
enablePersistence
1条答案
按热度按时间h6my8fg21#
如果我在同一个应用程序中对文档X(比如说Locations/x)多次调用onSnapshot,Firestore Web客户端是否会通过合并订阅来优化它?
默认情况下,禁用Web的脱机持久性。因此,如果您希望拥有数据库的本地副本,则必须通过调用
enablePersistence
方法来启用它。这意味着当附加侦听器时,必须为查询返回的每个文档支付读取费用。所有后续调用都将从该高速缓存中读取,但前提是Firebase服务器上没有任何更改。所以如果你读了一个文档,那么你就必须为一次阅读付费。所有其他读操作都将来自该高速缓存。所有来自该高速缓存的读取都没有成本。但请记住,根据有关定价的官方文档:如果启用了离线持久性,并且监听器断开连接超过30分钟(例如,如果用户离线),则将向您收取读取费用,就像您发出了全新的查询一样。
所以如果你离线超过30分钟,当监听器重新连接时,你必须为新的读取付费。
1.每次文件更新时,是否需要支付一次或多次读取费用?
更新操作与读取操作没有任何关系。因此,当您更新文档时,没有应该支付的读取操作。
1.我的客户会收到多个网络呼叫还是每次文档更新只收到一个?
连接监听器后,每次更新都会获得一个连接。不会触发其他任何内容。