You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Firebase Realtime Database V9版本的实时监听器

你使用的refList.off()写法无法正确移除V9版本Firebase Realtime Database的监听器,该写法是V8及更早版本命名空间式API的用法,V9模块化API并未在ref实例上挂载off方法。

正确移除监听器有两种可选方案:

  • 方案一(更推荐,可精准解绑单个监听器)
    onValue调用后会返回一个解绑函数,你只需要提前存储该函数,需要移除监听器时直接执行即可。
    代码示例:
const refList= ref(
  db,
  `users/${uid}`
);
// 存储onValue返回的解绑函数
const unsubscribe = onValue(refList, (snapshot) => {
  let allData = snapshot.val() === null ? [] : snapshot.val()
});

// 需要移除监听器时调用
unsubscribe()
  • 方案二(移除指定ref上绑定的所有监听器)
    如果需要清空某个ref上绑定的全部监听器,可以导入V9提供的off方法调用:
import { off } from "firebase/database";

// 移除refList上的所有监听器
off(refList)

内容的提问来源于stack exchange,提问作者aryankarim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:39:00