我想知道在尚未返回任何结果时是否有任何方法可以取消/中止Firebase实时数据库请求。
请考虑以下事项:
1)用户从列表中选择一个项目 2)(Web)应用程序请求检索该项目的某些消息或其他数据 3)用户导航并选择不同的项目 4)Firebase请求返回错误项目的结果
可以中止常规xhr请求。可以清除超时(setTimeout)。有没有办法中止/取消正在进行的firebase请求?
示例:
React.renderToString
PS:这个问题是关于数据库的,但我想这对大多数firebase服务来说真的很方便吗?
答案 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()之前返回结果)