中止正在进行的Firebase数据库请求

时间:2017-11-15 07:03:19

标签: javascript firebase firebase-realtime-database

我想知道在尚未返回任何结果时是否有任何方法可以取消/中止Firebase实时数据库请求。

请考虑以下事项:

1)用户从列表中选择一个项目 2)(Web)应用程序请求检索该项目的某些消息或其他数据 3)用户导航并选择不同的项目 4)Firebase请求返回错误项目的结果

可以中止常规xhr请求。可以清除超时(setTimeout)。有没有办法中止/取消正在进行的firebase请求?

示例:

React.renderToString

PS:这个问题是关于数据库的,但我想这对大多数firebase服务来说真的很方便吗?

1 个答案:

答案 0 :(得分:1)

无法中止读取操作。

如果您不希望应用再次使用该数据,则可以通过调用off()来分离监听器。

这对于您使用.on()注册的侦听器不起作用,但也适用于.once()。

示例:

firebase.db.ref("/item1").once("value", function(snap) { console.log("1: ", snap.val()); });
firebase.db.ref("/item1").off();
firebase.db.ref("/item2").once("value", function(snap) { console.log("2: ", snap.val()); });

在控制台中打印以下内容:

  

2:{...}

换句话说:来自第一行的回调永远不会被调用(除非它在调用.off()之前返回结果)