использование SQLite вместо хранилища / локального хранилища Ionic 4 Native - PullRequest
0 голосов
/ 02 апреля 2019

Допустим, я хочу хранить сообщения чата локально в приложении Ionic 4, но я не хочу удалять и вставлять каждые n секунд. Могу ли я использовать отдельный файл SQLite и просто убедиться, что я очищаю записи и хорошо с этим?

Правильно, поэтому по соображениям безопасности и другим аспектам я пишу приложение для чата и пришел к выводу, что лучше всего будет иметь файл SQLite, в котором могут храниться все сообщения. Теперь я вас уже слышу, вероятно, прежде чем вы дойдете до этой части, скажите: «Эй! У Ionic 4 и Cordova уже есть плагин для этого !! И он основан на SQLite !!» Вы были бы правы, однако, он сохраняется как пара ключ / значение и не допускает никаких типов запросов или объединений таблиц. Доступны следующие методы (получить, установить, длина, удалить, forEach). То, что я хотел бы, это простое обновление (). Единственное, что я могу увидеть здесь, это подход noSQL, где обновление - это просто удаление и повторная вставка.

Вот пример того, что будет храниться:

{
  conversations: [
    {id: 1, 
      people: ["Christian", "Sara"], 
      messages: [
        {id: 1, author: "Christian" content: "hi",  date: <date>},
        {id: 2, author: "Sara",     content: "foo", date: <date>}, 
        {id: 3 ...}
      ]
    },
    {id: 2, person: "Laura", messages: [{}, {}, {}]
  ]
}

По сути, я бы хотел сделать INSERT INTO messages WHERE id = :id или что-то подобное, а не что-то вроде:

function update(){
  const oldMessages = this.storage.forEach('messages')
    .then(chat => {
      //loop over the chat and store each chat object in the old array,
    } 
 // set an interval that will retrieve the new messages 
//and append them into the old messages, then finally delete the old key/value storage and then
db.set('messagesChristianAndSara', messageArrayOfObjects)
}

Я думаю, что это ситуация, в которой я бы оказался. Там, где я предпочел бы просто вставить или вставить объект.

Может быть, есть способ, но в документах не так ясно об этом.

...