【发布时间】:2019-07-22 18:20:10
【问题描述】:
在关注此firestore document 之后,很明显批量写入和事务都非常适合对多个操作进行分组。
虽然我不知道什么是我的用例的最佳实践。
这是我的批量写入:
val batch = db.batch()
val docRef = db.collection(CHATS_COLLECTION).document()
chat.id = docRef.id
return Observable.create { emitter: ObservableEmitter<String> ->
batch.set(docRef, chat)
batch.update(db.collection(USERS_COLLECTION).document(userId), "chatIds",
FieldValue.arrayUnion(db.document("$CHATS_COLLECTION/${docRef.id}")))
batch.commit()
.addOnSuccessListener {
emitter.onNext(docRef.id)
emitter.onComplete()
}
.addOnFailureListener { e ->
emitter.onError(e)
}
}
我正在创建新的聊天文档,同时使用批量写入使用新创建的文档更新我的用户文档“chatsIds”数组。
用事务替换批量写入有什么缺点?
【问题讨论】:
标签: firebase google-cloud-firestore