使用SQLite代替存储/本地存储Ionic 4 Native

时间:2019-04-02 14:13:14

标签: angular sqlite ionic-framework ionic4 ionic-native

假设我想在Ionic 4应用程序中本地存储聊天消息,但我不想每隔n秒删除和插入一次,我可以使用单独的SQLite文件并确保对条目进行消毒吗?可以吗?

对,因此,出于安全原因和其他方面,我正在编写一个聊天应用程序,并得出的最佳结论是要有一个可以存储所有消息的SQLite文件。现在,我已经听到了您的声音,也许在您进入这一部分之前,请说“嘿!Ionic 4和Cordova已经为此插入了一个插件!它基于SQLite!”您将是正确的,但是它存储为键/值对,并且不允许任何类型的查询或表联接。可以使用以下方法(获取,设置,长度,删除,forEach)。我想要的是一个简单的update()。我在这里只能看到一种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)
}

这种情况我想我会陷入困境。我只想将对象推入或插入。

也许有办法,但是文档尚不清楚。

0 个答案:

没有答案