如何在firebase onDataChange 上获取最后的数据?

问题描述 投票:0回答:1

我想从 firebase 获取最后的输入数据。但是通过使用 ValueListener 和 onDataChange,我得到的值是最后一个 data-1(最后一个的前一个)。

这是代码:

mDose1.addValueEventListener(new ValueEventListener() {
    public void onDataChange(@NonNull DataSnapshot snapshot) {
       int iDose = snapshot.getValue(Integer.class);
    }
    public void onCancelled(@NonNull DatabaseError error) {
    }

});

我在内部搜索找不到任何方法来解决这个问题,或者我可能不明白我应该搜索什么。

java firebase-realtime-database
1个回答
0
投票

如果您在 Android 上运行此代码并且启用了缓存,则预计您的

onDataChange
将首先(几乎立即)使用缓存中的值进行调用。

如果设备已连接到服务器并且服务器上的值已更改,您的

onDataChange
将使用服务器中的值再次调用。


如果这不是您得到的行为,请编辑您的问题以显示实际发生的情况(例如通过打印有问题的值)。这也是实施

onCancelled
的好时机,至少应该是:

public void onCancelled(@NonNull DatabaseError error) {
    throw error.toException();
}
© www.soinside.com 2019 - 2024. All rights reserved.