React Native Expo Android环境下查找MongoDB Realm文件遇阻
解决React Native Expo + Android设备上Realm文件定位问题
核心原因
Android系统中/data/data/是应用私有目录,未root设备无法直接访问;Expo开发模式下,Realm文件不会暴露到/Android/data/的可访问目录中,导致你看不到文件。
可行解决方案
方法1:通过Realm API导出文件到公共目录
在代码中添加逻辑,将Realm文件复制到设备公共存储(如Download文件夹),方便访问:
import Realm from 'realm'; import * as FileSystem from 'expo-file-system'; // 初始化Realm实例 const realm = new Realm({ schema: [你的数据Schema] }); // 导出到设备Download目录 const exportPath = `${FileSystem.documentDirectory}../Download/default.realm`; await realm.writeCopyTo(exportPath); console.log(`Realm文件已导出至: ${exportPath}`);
执行后,可通过设备文件管理器在Download文件夹找到该文件,或通过MTP传输到电脑。
方法2:用ADB命令提取文件(无需root)
- 确保电脑安装Android SDK,设备开启USB调试并连接电脑
- 打开CMD执行以下命令:
完成后即可在电脑指定路径找到Realm文件。# 将私有目录的Realm文件复制到设备公共存储 adb shell run-as com.myappname cp /data/data/com.myappname/files/default.realm /sdcard/default.realm # 将文件从设备拉取到电脑本地 adb pull /sdcard/default.realm C:\你指定的本地路径
方法3:Expo Dev Client调试导出
若使用自定义Expo Dev Client,可在应用内添加调试按钮,通过expo-file-system触发文件分享,将Realm文件发送至邮箱或其他应用直接获取。
验证
导出文件后,直接用Realm Studio打开即可查看数据库内容。
内容的提问来源于stack exchange,提问作者u2gilles
相关产品推荐
相关产品推荐

