【问题标题】:Cannot find my .realm file to see in realm browser and cannot see Result无法在领域浏览器中找到我的 .realm 文件,也无法看到结果
【发布时间】:2017-08-17 00:28:53
【问题描述】:

请原谅我问了这么愚蠢的问题。我正在尝试将 Realm DB 用于我的应用程序,但我被困在如何在领域浏览器上查看我的数据库。我还尝试查看路径并在我的文件中找到它。我没有找到任何领域文件。我该怎么做? 我也有兴趣查看我的结果集和查询,目前我遇到了麻烦。这是代码。我愿意接受建议和更好的实施实践。制作一个单独的模式文件和一个单独的文件来初始化我的模式是否更好? 看不到我的过滤结果。

const testScema = {
  name: 'profile',
  properties: {
    name: 'string',
    age: 'int',
    sport: 'string',
  }
};

let realmObj = new realm({schema: [testScema]});

export default class test extends Component {
  constructor(props){
    super(props);
    this.state = {
      name: '',
      sport: '',
      age: '',
    }
  }

  insert(){
    var age = parseInt(this.state.age);
    realmObj.write(() => {
      let myProf = realmObj.create('profile',{
        name: this.state.name,
        age: age,
        sport: this.state.sport,
      });
    });
    let allProfiles = realmObj.objects('profile');
    let filterRes = allProfiles.filtered('name BEGINSWITH "h"');
    this.refs.name.setNativeProps({text: ''});
    this.refs.age.setNativeProps({text: ''});
    this.refs.sport.setNativeProps({text: ''});
    console.log("filter result", filterRes);
    console.log("items in db", realmObj.objects('profile').length);
  }

  delete(){
    let allProfiles = realmObj.objects('profile');
    realmObj.write(() => {
    realmObj.delete(allProfiles);
    });
  }

  render() {
   return (
     <View>
      <Text>For Realm testing</Text>
      <View style={{flexDirection: 'row'}}>
        <Text style={{flex: 1}}>Enter Name: </Text>
        <TextInput ref="name" onChangeText={(name) => this.setState({name})} style={{flex: 1}}/>
      </View>
      <View style={{flexDirection: 'row'}}>
        <Text style={{flex: 1}}>Enter Age: </Text>
        <TextInput ref="age" keyboardType="numeric" onChangeText={(age) => this.setState({age})} style={{flex: 1}}/>
      </View>
      <View style={{flexDirection: 'row'}}>
        <Text style={{flex: 1}}>Enter Favourite Sport: </Text>
        <TextInput ref="sport" onChangeText={(sport) => this.setState({sport})} style={{flex: 1}}/>
      </View>
      <View style={{flexDirection: 'row', justifyContent: 'space-around'}}>
        <Button style={{flex: 1}} title="INSERT" onPress={() => this.insert()}/>
        <Button style={{flex: 1}} title="DELETE" onPress={() => this.delete()}/>
      </View>
      <ListView
        dataSource={ds.cloneWithRows(realmObj.objects('profile'))}
        renderRow={(data) => <Text>{data.defaultPath}</Text>}/>
     </View>
   );
  }
}

【问题讨论】:

    标签: javascript react-native realm realm-browser


    【解决方案1】:

    如果您在 Android 上运行,则必须从应用程序的内部存储中复制领域文件并将其粘贴到计算机上的某个位置,然后使用领域浏览器浏览文件。

    您可以在data/data/$application_package_name/files 路径找到领域文件。

    更新:这回答了你的问题。 https://stackoverflow.com/a/28465803/1282812

    【讨论】:

    • 谢谢你的回答......但是我在哪里可以找到我手机内部存储中的文件......因为在 data/data/ 中只有缓存是空的......是文件?缓存目录
    • 你需要root手机。如果您没有root手机,您可以在模拟器中安装您的应用程序,然后使用Android设备监视器访问模拟器文件系统。
    • 所以除了我的手机被root我看不到.realm文件吗?似乎不合逻辑
    • 在模拟器上可以看到。
    • 好吧,谢谢你花了这么多精力让我明白,但是..它仍然没有解决我的问题,因为..我使用的是 React Native (javascript).. 不是原生 android。所以我不认为它会起作用..但我仍然会尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多