Flutter 中 Cloud Firestore 的 FieldValue.increment
Posted
技术标签:
【中文标题】Flutter 中 Cloud Firestore 的 FieldValue.increment【英文标题】:FieldValue.increment for Cloud Firestore in Flutter 【发布时间】:2022-01-17 03:15:40 【问题描述】:我正在使用 Flutter 和 Firebase Firestore 创建一个 android 应用。
我想添加自今年 4 月以来在 Firebase 中明显可用的新 FieldValue.increment 功能,但我遇到了一个错误:
The method 'increment' isn't defined for the class 'FieldValue'.
这是我尝试过的代码:
onTap: ()
Firestore.instance.document('docRef').updateData("numberOfDocs": FieldValue.increment(1));
我只是一个初学者程序员,但是当我检查 field_value.dart 文件时,它缺少“增量”实现。 那么,说 Flutter 团队还没有实现这个功能是正确的答案吗?
我看过一个教程,其中在一些 .js 代码中已经使用了增量,但对我来说它不起作用。 https://www.youtube.com/watch?v=8Ejn1FLRRaw
【问题讨论】:
【参考方案1】:从version 0.10.0
开始,这已添加到cloud_firestore
Flutter plugin。
您可以将FieldValue.increment
与double
(例如FieldValue.increment(1.0)
)或int
(例如FieldValue.increment(2)
)一起使用。
Here is the relevant pull request.
如果有人在版本推送到 Pub 之前阅读此内容:该版本的链接将无法使用,但与此同时您可以使用 this Git commit,其中包含我所做的修复。
【讨论】:
【参考方案2】:据我在change log for FlutterFire 中看到的,增量运算符尚未添加。
我添加了feature request to the repo。
【讨论】:
谢谢彼得。我自己只是在浏览CloudFirestore plugin code,结果相同。我会为它添加一个问题/FR。 这似乎在主仓库中:github.com/flutter/plugins/pull/1491【参考方案3】:导入的用户:
import 'package:cloud_firestore/cloud_firestore.dart';
对于增量:
await FirebaseFirestore.instance.collection('post').doc(postId).update("like": FieldValue.increment(1));
递减:
await FirebaseFirestore.instance.collection('post').doc(postId).update("like": FieldValue.increment(-1));
【讨论】:
以上是关于Flutter 中 Cloud Firestore 的 FieldValue.increment的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 任务':cloud_firestore:compileDebugJavaWithJavac'的执行失败
Flutter cloud_firestore 系统日期对象的设置/警告
Cloud Firestore 连接我的 Flutter Windows 应用
Flutter:[cloud_firestore/unknown] NoSuchMethodError:null 上的无效成员:'includeMetadataChanges'(Flutter Web