使用gcloud shell导入以前导出的Firestore数据库时,如果在插入文档的任何位置上都有触发器,是否会触发任何云功能?
换句话说,如果我运行此命令:
gcloud beta firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
是否为插入的文档(onCreate,onUpdate,onDelete和onWrite)忽略了云存储触发器?
https://firebase.google.com/docs/firestore/manage-data/export-import
答案 0 :(得分:1)
简短答案: 即使导入导致创建新文档或触发对现有文档的更新,导入也不会触发任何云功能运行。
详细答案: 经过一些测试,事实证明,导入先前导出的firestore数据库...
$ls ~/.gnupg/
openpgp-revocs.d private-keys-v1.d pubring.kbx pubring.kbx~ S.gpg-agent S.gpg-agent.browser S.gpg-agent.extra S.gpg-agent.ssh trustdb.gpg
不会导致执行onWrite触发器。 (调用onWrite触发器可创建,删除和更新文档)
因此,如果您在文档中存在一个新值的情况下导入文档,它将不会触发onWrite(随后不会触发onUpdate)
import命令只会将文档导入数据库,而不会删除旧版本。因此,您可以导入A,然后导入B。结果数据库将包含来自A和B的数据。
换句话说,新导入中不存在但存在于数据库实时版本中的文档将不会被删除。而且导入不应触发任何云功能触发器。
(这只是我的经验。它显然仍处于测试阶段,所以我不知道这是否是预期的行为,将来是否会实现。希望如此。)