【发布时间】:2020-10-03 21:37:32
【问题描述】:
这可能是一个微不足道的问题,但我正在尝试最小化我在 Firebase 应用中的写入操作,并希望检查我当前的代码。假设我有一个如下所示的 Firebase 集合:
conversations
- someConversationId (<--document)
- someMessageId1 (<-- object within document)
- text: "Hey, what's up?",
- dateSent: new Date(2020, 1, 1),
- sentBy: "someonesUserId"
- someMessageId2 (<-- object within document)
- text: "Not much",
- dateSent: new Date(2020, 1, 2),
- sentBy: "someoneElsesUserId"
在这种情况下,messageId 是 key,value 是具有多个属性的 object。
有几种方法可以更新上述文档。考虑以下两个:
firebase.firestore().collection("conversations").doc("conversationId").update({
someMessageId1: {
text: "New text",
dateSent: new Date(2020, 1, 2),
sentBy: "someNewUserId"
});
firebase.firestore().collection("conversations").doc("conversationId").update({
someMessageId1.text: "New text",
someMessageId1.dateSent: new Date(2020, 1, 2),
someMessageId1.sentBy: "someNewUserId"
});
我的假设是这两种方法都会导致 1 次写入操作。是这样吗?
我为什么要问这个
我有一个文档,其中包含一个对象。例如,在那个对象中有 5-10 个属性。我希望能够在不覆盖整个对象的情况下覆盖对象中的一些属性,因为在前端我只知道我要更新的属性中的 2-3 个,而我想保留其余的属性。上面的第一种方法将覆盖整个对象并只保留 3 个属性,而其他属性将被删除(我认为?)。第二种方法只会覆盖指定的 3 个属性,并且对象上的任何其他属性都将保留。但是我想知道在这种情况下我将执行多少次写入操作,并且如果上面的第二种方法算作 3 次写入,我可能会重新排列我的数据库结构。谢谢!
【问题讨论】:
标签: firebase google-cloud-firestore