领域-如果领域对象不存在则插入,否则更新

时间:2018-11-20 11:57:43

标签: react-native realm realm-mobile-platform

我在我的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));
});

我阅读了copyToRealmappend的内容,但不确定如何使用以及哪种写入方式。我试图在插入之前将其删除,但我认为这不是正确的方法。

请建议如何实现。

谢谢 R

1 个答案:

答案 0 :(得分:0)

您可以更新

 var song = realm.objects('song')//replace with your object(USER_SCHEMA)
            realm.write(() => {
                realm.delete(song);
                realm.create('song', currentSong, true);
            })