我有一个onWrite()函数,该函数在添加文档时都会被调用。这些文档是由客户端创建的,我需要在其中添加一些额外的字段。
是否有一种方法可以在触发函数调用之前将其修改到数据库中,以对其进行修改?
还是我需要对数据库进行单独的更新调用以添加字段? (而且,如果是这样,此额外的调用是否会触发对我的函数的另一个onWrite()调用?)
答案 0 :(得分:1)
是否有一种方法可以修改触发函数>调用的文档快照,然后再将其击中数据库?
在到达触发器之前,您无法拦截对数据库的写入。触发总是在客户端写入后 发生。
还是我需要对数据库进行单独的更新调用以添加字段?
是的,您可以在触发器内部修改数据库。这是一个非常常见的用例。
如果是的话,这个额外的调用会触发对我的函数的另一个onWrite()调用吗?
如果您修改触发了onWrite函数的同一文档,是的,它将再次触发该函数。您必须通过在功能代码中检查是否应该再次进行写操作来防御这种情况。如果您不希望修改后的文档再次触发该函数,也可以考虑使用onCreate。