Firebase 在setData()之后刷新DocumentSnapshot,无需额外查询

Firebase 在setData()之后刷新DocumentSnapshot,无需额外查询,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,为了在Firestore文档中设置新数据,我通常使用setData()和merge:true。这可以很好地工作,并且符合数据保存的预期: await userDoc.reference.setData({ 'favourite_color': 'blue', 'favourite_team': 'fcporto', },merge: true); 我唯一的问题是DocumentSnapshot(本例中的userDoc)在setData完成后不会自动“刷新”,这迫使我对文档进

为了在Firestore文档中设置新数据,我通常使用
setData()
merge:true
。这可以很好地工作,并且符合数据保存的预期:

await userDoc.reference.setData({
    'favourite_color': 'blue',
    'favourite_team': 'fcporto',
  },merge: true);
我唯一的问题是DocumentSnapshot(本例中的userDoc)在
setData
完成后不会自动“刷新”,这迫使我对文档进行额外的查询


有没有办法在setData()之后自动更新DocumentSnapshot?(相同的行为发生在
updateData()

否,DocumentSnapshot对象是不可变的-无法更改。您必须进行另一个查询,或者等待侦听器的另一个实时更新。

我的代码中有许多地方有文档/文档的侦听器,我对它们执行完全独立的.set()等操作-侦听器负责更新文档的本地副本(无论是通过Redux还是简单地使用state挂钩)。保留文档快照并不是一个好主意-将它们复制到某种形式的本地状态