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

如何导入@react-native-firebase的FilterFunction?解决Cannot find name 'Filter'错误

解决Firebase Firestore中"Cannot find name 'Filter'"的问题

出现该错误的核心原因是未正确导入Filter对象或依赖版本不支持Filter组合查询API,以下是具体解决步骤:

  • 升级依赖版本
    Filter组合查询是Firebase JS SDK v9及以上版本(对应@react-native-firebase/firestore需适配该版本)新增的功能。检查项目package.json中的@react-native-firebase/firestore版本,若版本过低,执行升级命令:
# npm
npm install @react-native-firebase/firestore@latest

# yarn
yarn add @react-native-firebase/firestore@latest
  • 显式导入Filter对象
    在使用Filter的代码文件顶部,必须从@react-native-firebase/firestore中导入Filter:
import { Filter } from '@react-native-firebase/firestore';

若使用CommonJS语法,导入方式为:

const { Filter } = require('@react-native-firebase/firestore');
  • 验证代码调用逻辑
    导入完成后,即可正常使用Filter组合查询。若直接调用Filter('user', '==', 'Tim')仍报错,可替换为Filter.where('user', '==', 'Tim'),完整示例代码如下:
const snapshot = await firestore()
  .collection('Users')
  .where(
    Filter.or(
      Filter.and(Filter.where('user', '==', 'Tim'), Filter.where('email', '==', 'tim@example.com')),
      Filter.and(Filter.where('user', '==', 'Dave'), Filter.where('email', '==', 'dave@example.com')),
    ),
  )
  .get();
  • TypeScript用户额外检查
    若使用TypeScript,升级依赖后需确保@react-native-firebase/firestore的类型定义已同步更新,无需额外操作即可获得类型提示。

内容的提问来源于stack exchange,提问作者김일혁

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:03:09