Firebase是否对同一更新的多次写入收费?

Firebase是否对同一更新的多次写入收费?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,这可能是一个有点琐碎的问题,但我正在尝试最小化Firebase应用程序中的写入操作,并希望检查我当前的代码。假设我有一个Firebase系列,看起来像这样: conversations - someConversationId (<--document) - someMessageId1 (<-- object within document) - text: "Hey, what's up?", - dateSent: new

这可能是一个有点琐碎的问题,但我正在尝试最小化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"
我的假设是这两种方法都会导致1次写入操作。是这样吗

我为什么问这个问题


我有一个文档,里面有一个对象。比如说,在这个对象中有5-10个属性。我希望能够在不覆盖整个对象的情况下覆盖对象中的某些属性,因为在前端,我只知道我要更新的属性中的2-3个,我想保留其余的属性。上面的第一个方法将覆盖整个对象,只保留3个属性,其他属性将被删除(我想是吧?)。第二个方法将只覆盖指定的3个属性,而对象上的任何其他属性都将保留。但是我想知道在这个实例中我将执行多少写操作,如果上面的第二个方法计为3次写,我可能会重新安排我的数据库结构。谢谢

无论您每次更新更改多少字段,也不管您如何表示这些字段应该更新。每次调用
update()
,仍然只需编写一个文档,这需要一次写入。

无论每次更新更改多少字段,也不管您如何表示这些字段应该更新。每次调用
update()
,仍然只需编写一个文档,这需要一次编写

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"
});