假设我想在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)
}
这种情况我想我会陷入困境。我只想将对象推入或插入。
也许有办法,但是文档尚不清楚。