我在我的React Native项目中使用Realm。领域已加密。我将用户对象存储在其中,并且只有一个用户,因此我将Id始终设置为1。
当对象存在时,我只想更新它而不是创建它。我该怎么做。到目前为止,我可以创建它,但是一旦创建,我将无法更新它。
显示错误
Error: Attempting to create an object of type 'User' with an existing primary key value '1'.
我的代码:
//user schema functions
export const insertUser = user => new Promise ((resolve, reject) => {
var encryptedPin = cryptoEncryptTest(getGlobalPin());
Realm.open(
{path: 'retailApp.realm',
schema: [ userSchema],
schemaVersion: 0, //optional
encryptionKey: encryptedPin }
//databaseOptions
).then(realm => {
realm.write(() => {
realm.create(USER_SCHEMA, user);
resolve(user);
});
}).catch((error) => reject(error));
});
我阅读了copyToRealm
和append
的内容,但不确定如何使用以及哪种写入方式。我试图在插入之前将其删除,但我认为这不是正确的方法。
请建议如何实现。
谢谢 R
答案 0 :(得分:0)
您可以更新
var song = realm.objects('song')//replace with your object(USER_SCHEMA)
realm.write(() => {
realm.delete(song);
realm.create('song', currentSong, true);
})