Как изменить данные, хранящиеся в chrome .storage - PullRequest
0 голосов
/ 05 августа 2020

Мне нужна эта структура данных

Два основных объекта, содержащих вложенные объекты

chrome.storage.sync.get(null, function(results) {
    console.log(results);                    // Output should be: {mainObject: {...}, mainObject2{...}}
    console.log(results.mainObject);         // Output should be: {object1: {...}, object2: {...}, object3: {...}} 
    console.log(results.mainObject.object1); // Output should be: {key: 'value', key: 'value'}
})

Пример

Инициализировать пустой mainObject

chrome.storage.sync.set({mainObject: {}}, function() {
    console.log('MainObject Created');
});

Каждый раз, когда запускается событие браузера, новый объект должен быть добавлен в mainObject

someBrowserEvent(function(name, eyeColor, hairColor) {
   name = {'eyeColor': eyeColor, 'haircolor': hairColor}

     // Code to add object to mainObject....
 
   chrome.storage.sync.get(['mainObject'], function(results) {
       console.log('results.mainObject');       // Desired output should be {emily: {...}}
       console.log('results.mainObject.emily'); // Desired output should be: {eyeColor: 'blue', hairColor: 'black'}
    })
}

Мое расширение не будет превышать 10 записей, поэтому я не думаю, что база данных было бы оптимальным в этом случае

Значения необходимо сохранить после закрытия окна chrome

Я нашел одно решение аналогичной проблемы (chrome syn c хранилище для хранения и обновления массива ), в котором пользователь предлагал прочитать существующее значение, добавить новое значение и затем сохранить его (перезапись). Мне интересно, есть ли лучшее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...