首页 > 解决方案 > 如何使用 dart 在 Firestore 查询中更新值

问题描述

这是一个从 firestore 数据库返回一些数据的查询。获取文档后,我想在返回最终列表之前更新特定的键(距离距离)值

return db
            .collection(Global.marketplaceRef)
            .where("point.geohash", isGreaterThanOrEqualTo: range.lower)
            .where("point.geohash", isLessThanOrEqualTo: range.upper)
            .limit(20)
            .snapshots()
            .map((list)  => (list.docs
          
             .map((e)  {
              // Update value here before returning doc. 
              // This doesn't seem to do that
              return (e.data().update('distance_away', (value) => 100.toString())).toList();
              })
            ).toList()
          );

我想更改每个文档的 distance_away 值。

标签: flutterdart

解决方案


您需要访问参考对象而不是 .data() 尝试这样的事情

 .map((list)  => (list.docs
      
         .map((e)  {
          return (e.reference.update({'distance_away': ['100']}
        ).toList()

推荐阅读