将更新后的文档放入 Firebase Firestore 事务中
Get the updated document into a Firebase Firestore transaction
我正在尝试更新来自 Firestore 的文档的本地副本。这意味着,每次我更新该文档时,我都会尝试使我的本地副本与更新的文档保持同步。这里的问题是我使用的是 serverTimestamp
值。所以我可以更新我的所有文档属性,但我没有任何方法可以将此 serverTimestamp
转换为本地日期。
我正在将这些东西放入 Firestore 事务中。出于这个原因,我希望获得更新的文档作为该操作的结果。但似乎 Firestore 本身就有这个限制。最“合理”的方法是再次获取文档,但是 Firestore 有限制所有读取必须在所有写入事务之前。
如果 firestore 在非交易情况下获得 WriteResult
会很棒。 (参考:https://googleapis.dev/nodejs/firestore/latest/WriteResult.html)
有人知道我该如何处理这个问题吗?
感谢更新
交易完成后您必须再次阅读文档。您将无法在事务回调块内执行此操作,无论是通过 get()
还是通过您提前设置的侦听器(将在事务完成后触发)。交易不会向您提供书面文件的最终状态。
我正在尝试更新来自 Firestore 的文档的本地副本。这意味着,每次我更新该文档时,我都会尝试使我的本地副本与更新的文档保持同步。这里的问题是我使用的是 serverTimestamp
值。所以我可以更新我的所有文档属性,但我没有任何方法可以将此 serverTimestamp
转换为本地日期。
我正在将这些东西放入 Firestore 事务中。出于这个原因,我希望获得更新的文档作为该操作的结果。但似乎 Firestore 本身就有这个限制。最“合理”的方法是再次获取文档,但是 Firestore 有限制所有读取必须在所有写入事务之前。
如果 firestore 在非交易情况下获得 WriteResult
会很棒。 (参考:https://googleapis.dev/nodejs/firestore/latest/WriteResult.html)
有人知道我该如何处理这个问题吗?
感谢更新
交易完成后您必须再次阅读文档。您将无法在事务回调块内执行此操作,无论是通过 get()
还是通过您提前设置的侦听器(将在事务完成后触发)。交易不会向您提供书面文件的最终状态。