Firebase Eventlistener的Java异步更新

时间:2018-11-08 04:04:02

标签: java firebase firebase-realtime-database nosql

我有一段代码可以通过返回Firebase查询来更新变量。在本节之外,我引用该变量并进行打印。

但是,它似乎是作为异步操作执行的,并且在输入任何值之前先打印出该变量,所以我一直得到Hitnull是否有on complete

addListenerForSingleValueEvent

编辑:

类似于Update value of variable from Firebase query?,但适用于Java。这是否意味着我必须使用反射?

1 个答案:

答案 0 :(得分:1)

实际上,InvoiceTT具有异步行为,因此您已经正确理解了问题。

不幸的是,我的解决方案是您可能因此必须更改方法。因此,您应该采用事件驱动的方法。因此,我将“当数据进入时,先做我的事情”,而不是“等待数据来然后再做我的事情”。

根据您的问题,在eventListeners的{​​{1}}方法内打印值,这将确保您不会得到null并正确检索值。

除此之外,我在搜索时发现的另一种方法是onDataChange()。我不会指望它,但是您可以在这里阅读更多有关此的信息:

StackOverflow Question

StackOverflow Answer