Javascript 在将firebase.Firestore.FieldValue.serverTimestamp()与其他FieldValue函数一起使用时,是否可以避免Firestore事务

Javascript 在将firebase.Firestore.FieldValue.serverTimestamp()与其他FieldValue函数一起使用时,是否可以避免Firestore事务,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我这里有两个问题 如果我使用firebase.firestore.FieldValue.serverTimestamp()更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原子更新 如果我同时使用多个FieldValue函数来更新一个对象,如下面的示例所示,我是否可以在没有事务的情况下进行更新,并且所有字段都将进行原子更新 如果我使用firebase.firestore.FieldValue.serverTimestamp()来更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原

我这里有两个问题

  • 如果我使用
    firebase.firestore.FieldValue.serverTimestamp()
    更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原子更新
  • 如果我同时使用多个FieldValue函数来更新一个对象,如下面的示例所示,我是否可以在没有事务的情况下进行更新,并且所有字段都将进行原子更新
  • 如果我使用firebase.firestore.FieldValue.serverTimestamp()来更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原子更新

    它与任何其他文档写入一样是“原子”的,因为写入只发生一次,并且在接收时服务器上计算了时间戳

    如果我同时使用多个FieldValue函数来更新一个对象,如下面的示例所示,我是否可以在没有事务的情况下进行更新,并且所有字段都将进行原子更新

    它仍然是“原子的”,因为只有一个文档写入,其中的值是在服务器上计算的。它们都是同时被写的。如果客户机不参与事务,则FieldValue令牌基本上都在内部起作用

    this.afs.doc('path').update({
      date: firebase.firestore.FieldValue.serverTimestamp( ),
      array: firebase.firestore.FieldValue.arrayUnion('value'),
      count: firebase.firestore.FieldValue.increment(1)
    });