假设我有当前的Firestore数据:
COLLECTION_1
DOC_A
DOC_B
DOC_C
COLLECTION_2
DOC_X我有一些导出的数据,就是:
COLLECTION_1
DOC_B // DOC_A IS NOT HERE
DOC_C
DOC_D // DOC_D IS AN "EXTRA"
// COLLECTION_2 IS MISSING
COLLECTION_3 // THERE IS AN "EXTRA" COLLECTION
DOC_3当我导入数据数据时会发生什么?会不会出现某种“合并”,或者我的整个Firestore将被导入的数据替换为原样?我正在处理DOC_D和COLLECTIO_3,这是肯定的。但是在导入之后,DOC_A和COLLECTION_2 (导出数据中缺少的那些)还会在那里吗?
PS: --我是在完整导入的上下文中问这个问题的(即:所有集合)。
要导入特定的集合,您似乎需要使用导出特定集合的导出,并且需要使用gcloud将其导入。网络控制台只允许完全导入。无论如何,我认为完整导入的全局“合并或覆盖”行为可能与特定集合上的相同行为相似。

发布于 2021-02-05 08:08:28
这是超快的测试。结果是
COLLECTION_1
DOC_A
DOC_B
DOC_C
DOC_D
COLLECTION_2
DOC_X
COLLECTION_3
DOC_3一切都是以文件的方式发生的。提到的文件说:
如果具有相同ID的文档已经存在,则导入将覆盖现有文档。 如果数据库中的文档不受导入的影响,则导入后它将保留在数据库中。
而这一切恰恰发生了。导入中存在的文档将被重写,而不存在的文档将被添加。如果文档在Firestore中,而不是在导入中,那么它将保持不变。
顺便说一句,如果您在GUI中测试它,您必须在导入后刷新页面。否则,变化是不可见的(至少发生在我身上)。
https://stackoverflow.com/questions/66042678
复制相似问题