刚开始与公司的FireStore并使用SetOptions.merge()
在云公司的FireStore交易这样没有什么特别的我猜:为什么使用SetOptions.merge()时,我的Cloud Firestore事务不会合并?
final Map<String, Object> visitorMap = new HashMap<>();
visitorMap.put(Visitor.NOTIFY_ON_CHAT_MESSAGE, true);
visitorMap.put(Visitor.TIME, FieldValue.serverTimestamp());
final DocumentReference docRefVisitor = mFirestore
.collection(VISITORS)
.document(theId)
.collection(VISITORS_USER)
.document(getCurrentUser().getUserId());
mFirestore.runTransaction(new com.google.firebase.firestore.Transaction.Function<void>() {
@Nullable
@Override
public void apply(@NonNull Transaction transaction) throws FirebaseFirestoreException {
transaction.set(docRefVisitor, visitorMap, SetOptions.merge());
}
})
文档说:
如果文件不存在,它将被创建。如果文档 确实存在,其内容将与新设 数据被覆盖,除非你指定的数据应该被合并到 现有文档
我遇到Visitor.NOTIFY_ON_CHAT_MESSAGE
boolean
被覆盖在云现有boolean
Firestore数据库文档。我虽然SetOptions.merge()
不会覆盖现有的值? 也许我错过了一些有关如何Transaction作品或者这是一个测试相关的事情,因为CF是测试版
由于下一次,我会阅读文档更好 – Erik
你”欢迎Erik!祝你好运! –