只需获得新添加的Firebase android子系统

只需获得新添加的Firebase android子系统,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试获取firebase上新添加的子级的引用或快照 我用不同的方法解决了它 myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { } 我的问题是,两者

我正在尝试获取firebase上新添加的子级的引用或快照 我用不同的方法解决了它

myRef.addValueEventListener(new ValueEventListener() {
                       @Override
                       public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                       }

我的问题是,两者都返回完整的快照意味着firebase中的所有这些节点是否有任何方法获取新添加的子节点(“这将提高速度”)

当您将侦听器附加到某个位置或查询时,侦听器最初将使用该位置上存在的或与查询匹配的所有数据进行激发。数据库没有“新”数据的概念,尽管您的应用程序可能有这个概念

有几个选项可以减少检索到的数据或传递给侦听器的数据:

  • 如果您是,应用程序的磁盘缓存中可能有以前的数据快照。在这种情况下,仅从服务器检索上一个快照和当前快照之间的增量。但是,整个当前快照将传递给侦听器,这样您就可以为当前数据正确呈现UI

  • 如果您只想从某个时刻开始处理数据,那么只需要从数据库请求该数据。通常,您可以通过存储上次在本地州处理的数据的密钥,然后使用类似这样的查询来仅获取新的更新:

    myRef.orderByKey().startAt("mostRecentKeyWeHaveAlreadyProcessed").add...Listener
    

  • 嗨,欢迎来到苏。您是新来的,因此您的问题已标记为供审阅。这看起来是个好的开始。如果你把代码整理一下就更好了(我们不需要@Override,将缩进改为2个空格,记住关闭大括号,等等。我们真正想要的是解决您的问题。记住,尽量让人们方便地帮助您,您在此处放置的内容也旨在帮助其他人,因此请记住,您收到的答案可能会帮助其他有相同问题的人请记住这个问题的遗留问题。
    myRef.orderByKey().startAt("mostRecentKeyWeHaveAlreadyProcessed").add...Listener