Область - Вставить, если объект области не существует, либо обновить - PullRequest
0 голосов
/ 20 ноября 2018

Я использую Realm в своем собственном проекте.Царство зашифровано.Я храню объект пользователя в нем, и будет только один пользователь, поэтому я установил Id всегда равным 1.

, когда объект существует, я просто хочу обновить его вместо create.Как мне это сделать.на данный момент я могу создать его, но после создания я не могу его обновить.

Это ошибки с сообщением

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

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете обновить

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