Firebase - 无回拨访问数据

时间:2018-02-19 22:34:26

标签: android firebase firebase-realtime-database

我想获取存储在数据库中的数据,而不仅限于在数据发生变化时才访问它。

我从2016年开始看过这篇文章: How to access Firebase data without using addValueEventListener 建议使用addValueEventListener。 我也看过这篇文章: Accessing data in Firebase databse 没有好的答案。

ValueEventListener仅在数据库发生更改时才会触发onDataChange。

如果数据库中没有更改内容,我还能如何访问数据库?

现在我将编写简单无害的更改以访问数据,但我想知道这是否是唯一的方法。 感谢

1 个答案:

答案 0 :(得分:1)

当然,这绝对不是真的。您可以随时检索数据。

首先,我建议您阅读this documentation reference

其次,我向您提供您真正要求的内容。

如果您阅读documentation you will notice that it states the following

  

此类中的onDataChange()方法在连接侦听器时触发一次,每次数据更改时都会触发,包括子项。

这意味着使用此代码:

databaseReference.removeEventListener(eventListener);

使用该方法,您可以分离任何侦听器,因此它只会侦听一次或在需要时分离它。

a method for only retrieving data once though

databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Log.d(TAG, "Data retrieved.");
    }
    ...
}

此方法将完全调用onDataChange一次或onCancelled