【问题标题】:Realm - Insert if realm object does not exist else update领域 - 如果领域对象不存在则插入,否则更新
【发布时间】:2018-11-20 11:57:43
【问题描述】:

我在我的 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,但我不确定如何使用以及哪种是写入方式。我尝试在插入之前将其删除,但我认为这不是正确的做法。

请提出如何实现这一点。

谢谢 回复

【问题讨论】:

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


    【解决方案1】:

    你可以更新

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

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多