【问题标题】:Firebase Database BatchingFirebase 数据库批处理
【发布时间】:2017-04-15 17:23:14
【问题描述】:

我想知道Firebase数据库有多聪明,如果我同步调用它们,它是否会批量处理多个数据库请求?

例如,如果我在下面发出两个相同的请求,它会只向后端发送最后一个,还是两者都发送?

firebase.database().ref('test').set(1);
firebase.database().ref('test').set(2);

另外,如果我多次同步读取同一个位置,它会多次向后端发送请求,还是会明白读取了同一个位置?

firebase.database().ref('test').once('value', snap => {});
firebase.database().ref('test').once('value', snap => {});

另外,监听某些路径的开销是多少?在内存和带宽方面。在不影响用户体验的情况下,每个用户最多可以使用多少个听众?

firebase.database().ref('...').on('value', snap => {});

【问题讨论】:

    标签: javascript caching firebase firebase-realtime-database


    【解决方案1】:

    firebaser 在这里

    这些写入无法合并在一起,因为您可能有验证规则(仅在服务器上强制执行)仅在第一次写入后才接受第二次写入 每个写入请求都将发送到数据库.所以在你的第一个 sn-p 中,会发送两个写操作。

    Firebase 只会检索它正在侦听一次的每个位置的数据。因此,如果您保持活动侦听器,则该位置上的第二个侦听器将从缓存中获取现有数据。

    但在您的场景中,您没有保持活跃的侦听器,因为您使用的是once()。当您使用once() 时,只要客户端收到读取结果,就会删除侦听器。

    当您紧接着执行这两行时,它们仍然可能会得到相同的读取。但是,如果这些行相距更远,则第一个侦听器将已被删除,因此数据已从缓存中删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-04
      • 2018-04-18
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多