Juv*_*uvi 4 firebase google-cloud-firestore
在遵循这个firestore 文档之后,很明显批量写入和事务都非常适合对多个操作进行分组。
虽然我无法确定我的用例的最佳实践是什么。
这是我的批量写入:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在创建新的聊天文档,同时使用批量写入使用新创建的文档更新我的用户文档“chatsIds”数组。
用事务代替批量写入有什么缺点?
在没有任何额外好处的情况下,它会变慢。批量写入非常适合您的情况:您希望在没有任何读取的情况下更新数据库中的多个位置。
如果你有读取,那么使用事务是有意义的。在您的情况下,批量写入是正确的选择,因为它运行速度更快。
| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |