You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中操作Firestore已有数组字段增删元素如何避免隐性报错?

目标

无需提前检索数据,向已存在的数组字段中增删元素且不产生错误。

操作步骤

需求为用户点击添加/删除按钮时,向指定数组中增删当前用户的uid,实现代码如下:

// 从用户列表移除我的uid
FirebaseFirestore.instance.collection("test").doc("ABC").update({
  "users": FieldValue.arrayRemove(
      <String>[FirebaseAuth.instance.currentUser!.uid])
});


// 向用户列表添加我的uid
FirebaseFirestore.instance.collection("test").doc("ABC").update({
  "users": FieldValue.arrayUnion(
      <String>[FirebaseAuth.instance.currentUser!.uid])
});

后续我在安卓模拟器中点击了对应按钮进行测试。

遇到的问题

调试控制台中没有显示明确报错,但method_channel_document_reference.dart的第60行被标黄,该行代码为:

throw convertPlatformException(e);

运行环境信息(flutter doctor输出)

[√] Flutter (Channel beta, 2.6.0-5.2.pre, 运行系统 Microsoft Windows [Version 10.0.22000.282], 区域设置 ja-JP)
    • Flutter 版本 2.6.0-5.2.pre,安装路径 D:\src\flutter_windows_2.5.0-stable\flutter
    • 上游仓库地址 https://github.com/flutter/flutter.git
    • 框架版本 400608f101 (7周前提交,2021-09-15 15:50:26 -0700)
    • 引擎版本 1d521d89d8
    • Dart 版本 2.15.0 (build 2.15.0-82.2.beta)

[√] Android 开发工具链 - 开发安卓设备应用 (Android SDK 版本 29.0.3)
    • Android SDK 安装路径 D:\Android
    • 最高支持平台 android-30,构建工具版本 29.0.3
    • Java 二进制文件路径: D:\Program Files\Android\Android Studio\jre\bin\java
    • Java 版本 OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    • 所有安卓证书已接受

[√] Chrome - 开发web应用
    • Chrome 安装路径 C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (版本 4.2)
    • Android Studio 安装路径 D:\Program Files\Android\Android Studio
    • Flutter 插件可在JetBrains插件市场搜索flutter安装
    • Dart 插件可在JetBrains插件市场搜索dart安装
    • Java 版本 OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[√] VS Code (版本 1.61.2)
    • VS Code 安装路径 C:\Users\yukik\AppData\Local\Programs\Microsoft VS Code
    • Flutter 扩展版本 3.27.0

[√] 已连接的可用设备 (3台)
    • Android SDK built for x86 (移动端) • emulator-5554 • android-x86    • Android 10 (API 29) (模拟器)
    • Chrome (web端)                       • chrome        • web-javascript • Google Chrome 95.0.4638.54
    • Edge (web端)                         • edge          • web-javascript • Microsoft Edge 95.0.1020.40

• 未发现任何问题

内容的提问来源于stack exchange,提问作者Beginner_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:15:02