如何停止在Firestore中获取数据?

伊万·帕特里斯(Ivan Patrice):

我正在使用Firestore作为后端构建应用程序。我需要从数据库中获取所有新更改。

EventListener<DocumentSnapshot> listener = new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(@Nullable DocumentSnapshot snapshot, @Nullable FirebaseFirestoreException e) {
        if (snapshot != null && snapshot.exists()) {
            DataClass dataClass = snapshot.toObject(DataClass.class);
            processesData(dataClass); // process data from db.
        }
    }
};

ListenerRegistration listenerReg = dataDocumentReference.addSnapshotListener(listener);

当我关闭应用程序时,该应用程序仍在获取数据。

我读到我可以关闭连接。我怎样才能做到这一点?

亚历克斯·莫莫:

为了解决这个问题,您需要停止监听更改,可以通过在对象onStop()调用remove()method 来在方法中完成ListenerRegistration以下操作:

@Override
protected void onStop() {
    super.onStop();

    if (listenerReg != null) {
        listenerReg.remove();
    }
}

请记住,在使用addSnapshotListener时,将附加一个侦听器,该侦听器将针对数据库中发生的每个更改而调用。因此,在关闭应用程序时也会发生这种情况,因此必须在活动被销毁之前分离侦听器

如果在您的应用程序中您不需要实时获取数据,则可以直接在引用上使用get()调用,该引用仅读取一次文档。由于它只读取一次,因此没有要删除的侦听器。这是addListenerForSingleValueEvent()Firebase Realtime数据库使用的通讯员

就像@giudigior在回答中所说的那样,您还可以将活动作为方法中的第一个参数传递addSnapshotListener(),因此Firestore可以在活动停止时自动清理侦听器。

ListenerRegistration listenerReg = dataDocumentReference
            .addSnapshotListener(YourActivity.this, listener);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从React Native中的Reference数据类型获取Firebase Firestore中的数据

如何仅从Firestore获取新更新的数据?

如何使用Firebase Firestore获取查询数据?

使用批处理时如何从Firestore中获取数据?

如何使从Firebase Firestore更快地获取数据?

如何从Firestore查询快照中获取特定的文档数据?

如何在Android中从Cloud Firestore Firebase获取或获取数据

如何从Angular 7的Firestore查询中获取数据的Observable?

如何从Firestore中的两个集合中获取数据?

如何在地图功能中从Firestore获取数据

Flutter:我如何从List <String>中的Firestore获取数据?

如何从Firestore中获取数据?

Flutter:如何在Firestore中获取阵列数据?

从Firestore获取数据后如何设置状态

如何使用抖动流从Firestore中获取数据

如何使用flutter从文档的Firestore数组中获取数据?

如何停止多次打印 Cloud Firestore 数据库中的值?

主页加载时如何从Firestore获取数据?

如何对从 Cloud Firestore 获取的数据进行排序

如何使用firestoreConnect从firestore获取数据?

如何从 Firestore 集合中的文档中获取数据?

我如何从 Firestore 文档中获取所有数据?

从 Firestore 集合中的数组中获取数据

SwiftUI:如何迭代 Cloud Firestore 集合中的文档并获取数据?

如何添加地图以获取firestore中的数据?

如何使用cloud firestore在django中以表格的形式获取数据?

如何从不同集合的文档中获取 Firestore 数据

如何从firestore获取数据并显示在数据表中?[扑]

从返回元数据的 Firestore 中获取数据