我知道要移动文档,我们必须复制并粘贴。但是子集合在复制->粘贴过程中丢失了。
那么我该如何复制和粘贴集合中的所有文档?
从路径开始-/ main / issueOpen / list / -Lb2yhvNLN6NsvCXAGyM / chat / [有很多文档]
路径-/ main / issueClosed / list / -Lb2yhvNLN6NsvCXAGyM / chat / [都移到这里]
...
Future<Null> closeIssue() async {
DocumentReference fromDocument = await Firestore.instance
.collection("main").document("issueOpen").collection("list")
.document(chatId);
DocumentReference toDocument = await Firestore.instance
.collection("main").document("issueClosed").collection("list")
.document(chatId);
fromDocument.get().then((datasnapshot) {
if (datasnapshot.exists) {
toDocument.setData(datasnapshot.data).whenComplete(() {
}).catchError((e) => print(e));
}
});
}
...
答案 0 :(得分:0)
Firestore中的所有读取操作都很浅。读取文档不会从该文档的子集合中读取任何数据。
这意味着要将文档及其子集合移动到新位置,您将必须复制该文档 并复制其子集合中的所有文档。
如果文档的数量不是太大,请考虑在事务中执行此操作,以使其在服务器上自动发生。