代码之家  ›  专栏  ›  技术社区  ›  Romeo

firebase on()/addValueEventListener需要多少资源?

  •  0
  • Romeo  · 技术社区  · 6 年前

    我看到Firebase网站有很多文档可以帮助我们优化资源的使用,但是,我还没有找到一个详细的例子来说明所使用的资源。

    以ANDROID为例

    我明白当我做一个

    query.addListenerForSingleValueEvent(...);
    

    所有的引用都被“查询”到数据库,所以这是一个单一的查询,但是会删除所有的对象。

    query.addValueEventListener(...);
    

    连接保持打开,但它是否会按时间间隔保持连接? 或者在计费方面被认为是一个单一的连接? 在对数据库进行更改之后,它会再次查询所有对象吗?

    总的来说,发出一个请求要比使用实时数据库功能监听一个引用重多少、贵多少?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gastón Saillén    6 年前
    query.addListenerForSingleValueEvent(...);
    

    所有的引用都查询到数据库中,所以这是一个单一的

    它只侦听一次您正在查询的子对象中的对象,而不是数据库中的所有对象。

    query.addValueEventListener(...);
    

    连接保持打开,但它会继续连接吗 时间间隔?

    它没有时间间隔,而是在数据库中进行更改时侦听,假设您更改了数据库中的某个值,这将触发 addValueEventListener . 这只会在数据库中的某些值发生更改时消耗资源,因此使用情况将随数据库使用情况而变化, addListenerForSingleValue 只会触发一次来查询你的数据,我们可以保证它将消耗更少的网络资源比一个侦听器,总是在听一些变化,使你的应用程序

    https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/ValueEventListener.html