将firebase.Firestore.FieldValue.serverTimestamp()与其他FieldValu



所以我有两个问题。

  1. 如果我使用firebase.firestore.FieldValue.serverTimestamp( )更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原子更新
  2. 如果我使用多个FieldValue函数来更新一个对象,就像下面的例子一样,我可以在没有事务的情况下完成吗?并且所有字段都会进行原子更新
this.afs.doc('path').update({
date: firebase.firestore.FieldValue.serverTimestamp( ),
array: firebase.firestore.FieldValue.arrayUnion('value'),
count: firebase.firestore.FieldValue.increment(1)
});

如果我使用firebase.firestore.FieldValue.serverTimestamp((更新单个字段,是否需要事务处理或此函数将负责服务器上的原子更新?

它是"原子";就像任何其他文档写入一样,写入只发生一次,时间戳是在收到时在服务器上计算的。

如果我像下面的例子一样,将多个FieldValue函数一起使用来更新单个对象,我可以在没有事务的情况下进行吗?并且所有字段都会进行原子更新?

它仍然是"原子";因为只有一个文档是用服务器上计算的值编写的。它们都是在同一时间写的。如果客户端不参与某个事务,那么FieldValue令牌基本上都在内部起作用。

最新更新