所以我有两个问题。
- 如果我使用
firebase.firestore.FieldValue.serverTimestamp( )
更新单个字段,是否需要事务处理,或者此函数将负责服务器上的原子更新 - 如果我使用多个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令牌基本上都在内部起作用。