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

标签 javascript firebase firebase-realtime-database

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

考虑以下因素:

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

常规的 xhr 请求可以被中止。可以清除超时(setTimeout)。有什么方法可以中止/取消正在进行的 Firebase 请求吗?

示例:

var request;
// ..

if (request) { abort(request); request = null; }
request = firebase.database().ref("item1/").once("value", callback);

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

最佳答案

无法中止读取操作。

如果您不想让应用程序再使用这些数据,您可以通过调用 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() 之前返回结果)

关于javascript - 中止正在进行的 Firebase 数据库请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301266/

相关文章:

javascript - NodeJs : Compare URL Parameters & Delete Requests with array values using Express

javascript - 如何像显示的示例一样迭代每个数字? (Java 脚本)

android - 如何降低firebase实时数据库下载成本?

swift - 如何使用 DispatchGroup/GCD 在 swift 中顺序执行函数?

javascript - Angular ui 路由器可选的 url 参数

javascript - 使用字符串访问多维对象?

reactjs - NextJS API 路由与 Firebase 云函数

http - Firebase APP 部署失败,HTTP 错误 : 500, 请求包含无效参数

android - 从 FirebaseMessagingService 重新加载 Webview

firebase - 如何加入在 Firebase 中深入两级以上的非规范化数据