我正在使用realm.write
,但我的default.realm
文件未更新。我还在我的架构中添加了另一个对象,我可以在开发我的React Native应用程序时使用它,但default.realm
文件未更新为包含此新对象。
我可以通过在Realm Browser中打开default.realm
来确认没有保存。此外,在今天早上关闭(昨晚关机后)并运行我的React Native应用程序之后,当我尝试访问它时,数据不在我的Realm中。
示例代码:
#queries.js
import Realm from 'realm'
// Define your models and their properties
class Car {}
Car.schema = {
name: 'Car',
primaryKey: 'id',
properties: {
id: 'int',
make: 'string',
model: {type: 'string', optional: true}
}
}
class Person {}
Person.schema = {
name: 'Person',
properties: {
id: 'int',
name: 'string'
}
}
// Get the default Realm with support for our objects
let realm = new Realm({schema: [Car, Person], schemaVersion: 3});
class Queries {
async syncCars()
{
try {
let responsePromise = await fetch(`http://api.localhost.com:3000/v1/cars?auth_token=xxx`).catch(function(error) {
console.log('There has been a problem with your fetch operation: ' + error.message);
});
let responseJson = await responsePromise.json();
realm.write(() => {
responseJson.forEach((values) => {
realm.create('Car', values, true);
});
});
}
catch(error) {
console.log("error " + error);
}
}
}
export default new Queries
然后在我的组件代码中我有:
import Queries from './queries'
await Queries.syncCars();
答案 0 :(得分:0)
正如Kristian Dupont在上面的评论中指出的那样,我正在查看错误的文件。
关注this answer我在Chrome调试器控制台中使用了realm.path
,并在包含default.realm
的路径中找到了正确的/Library/Developer/CoreSimulator/Devices/
。我不确定为什么OSX finder无法找到这个文件。我不确定为什么在我的React Native目录中也创建了default.realm
文件,但我已经删除了这个文件以避免混淆并且没有其他问题。