安装@react-native-async-storage/async-storage仍出AsyncStorage废弃警告如何修复
警告触发原因
你遇到的警告是由项目依赖的firebase@9.4.0内部代码导致的:该版本的Firebase默认会从react-native核心库导入AsyncStorage,哪怕你自己的业务代码已经正确使用了@react-native-async-storage/async-storage,依赖内部的错误引用仍然会触发废弃提示,这也是你移除Firebase配置后警告消失的原因。
修复方案
方案一:升级Firebase到适配版本
Firebase从9.6.0版本开始已经修复了该问题,内部默认切换为使用社区版AsyncStorage,直接升级Firebase依赖即可:# npm 执行 npm install firebase@latest # yarn 执行 yarn add firebase@latest升级完成后清理项目缓存重新打包,警告即可消失。
方案二:手动指定AsyncStorage实现(不想升级Firebase版本时使用)
如果因为业务兼容问题不能升级Firebase版本,可以在Firebase初始化代码中手动指定使用你已经安装的社区版AsyncStorage,避免其内部调用核心库版本,示例代码如下:import AsyncStorage from '@react-native-async-storage/async-storage'; import { initializeApp } from 'firebase/app'; import { getReactNativePersistence, initializeAuth } from 'firebase/auth'; // 替换为你自己的Firebase配置 const firebaseConfig = { // apiKey、authDomain等配置项 }; const app = initializeApp(firebaseConfig); // 初始化Auth时指定持久化存储用的AsyncStorage const auth = initializeAuth(app, { persistence: getReactNativePersistence(AsyncStorage) });如果你用到了Firebase其他需要存储能力的模块,也可以参考对应模块文档,手动传入社区版AsyncStorage作为存储实现。
方案三:排查其他依赖引用
如果完成上述操作后仍然有警告,可全局搜索项目所有代码中import AsyncStorage from 'react-native'的引用,把所有第三方依赖或者业务代码中的错误导入都替换为社区版的导入路径即可。
内容的提问来源于stack exchange,提问作者Aakash Rathee
相关产品推荐
相关产品推荐

