Flutter 升级后出现 Flutter Cloud Firestore 错误

Posted

技术标签:

【中文标题】Flutter 升级后出现 Flutter Cloud Firestore 错误【英文标题】:Flutter Cloud Firestore errors after Flutter upgrade 【发布时间】:2020-01-14 13:36:48 【问题描述】:

使用 Flutter v1.9.1+hotfix.2 在尝试构建 android 以进行发布时出现以下错误。发布版本在设备上运行良好。 ios 发布版本很好。 Flutter Doctor 的输出和包也在下面列出。

我尝试了多种建议的解决方案,例如确保迁移到 androidX。将 Android minSdkVersion 设置为 23 和其他多个都没有成功。

/Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase /cloudfirestore/CloudFirestorePlugin.java:100: 错误:找不到符号 return getFirestore(arguments).collectionGroup(path); ^ 符号:方法 collectionGroup(String) 位置:类 FirebaseFirestore /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:128: 警告:[unchecked] 未经检查的演员表 Map documentData = (Map) document.get("data"); ^ 必填:地图 找到:对象 /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:135: 警告:[unchecked] 未经检查的演员表 映射当前 = (Map) documentData.get(fieldNameParts[0]); ^ 必填:地图 找到:对象 /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:137: 警告:[unchecked] 未经检查的演员表 current = (Map) current.get(fieldNameParts[i]); ^ 必填:地图 找到:对象 /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:187: 警告:[unchecked] 未经检查的转换 映射元数据 = new HashMap(); ^ 必填:地图 找到:HashMap /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:230: 错误:找不到符号 query = query.whereArrayContains(fieldName, value); ^ 符号:方法 whereArrayContains(String,Object) 位置:Query 类型的变量查询 /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:466: 警告:[unchecked] 未经检查的转换 映射元数据 = new HashMap(); ^ 必填:地图 找到:HashMap /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:808: 错误:找不到符号 builder.setCacheSizeBytes(((整数) arguments.get("cacheSizeBytes")).longValue()); ^ 符号:方法 setCacheSizeBytes(long) 位置:Builder类型的变量生成器 /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:889: 错误:找不到符号 return FieldValue.arrayUnion(toArray(readValue(buffer))); ^ 符号:方法 arrayUnion(Object[]) 位置:类 FieldValue /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:891: 错误:找不到符号 return FieldValue.arrayRemove(toArray(readValue(buffer))); ^ 符号:方法 arrayRemove(Object[]) 位置:类 FieldValue /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:898: 错误:找不到符号 返回 FieldValue.increment(integerIncrementValue.intValue()); ^ 符号:方法增量(int) 位置:类 FieldValue /Users/chris/Development/Packages/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+4/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/ CloudFirestorePlugin.java:901: 错误:找不到符号 返回 FieldValue.increment(doubleIncrementValue.doubleValue()); ^ 符号:方法增量(双精度) 位置:类字段值

颤振医生输出:

医生总结(要查看所有详细信息,请运行 flutter doctor -v):[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G95, locale en-ZA) [✓] Android 工具链 - 为 Android 设备开发 (Android SDK 版本 29.0.2)[✓] Xcode - 为 iOS 和 macOS 开发 (Xcode 10.3) [✓] Android Studio (版本 3.5) [✓] VS Code (版本 1.38.1) [✓] 连接设备(2 个可用) • 未发现任何问题!

包:

版本:1.0.1+21

环境:sdk: ">=2.2.2

依赖关系:颤动: sdk:颤动

国际:^0.15.8 图像:^2.1.4 rxdart:^0.22.0 提供者:^2.0.1 file_picker: ^1.3.7 fluttertoast: ^3.1.0 url_launcher: ^5.0.3 image_picker: ^0.6.0+10 cupertino_icons: ^0.1.2 bottom_navy_bar: ^5.1.0 firebase_auth: ^0.11.1+7 geoflutterfire: ^2.0.3+5 in_app_purchase:0.2.0+4 firebase_storage:^3.0.2 滑动面板:^0.3.4 cloud_firestore:“0.12.9” cached_network_image: ^1.0.0 google_places_picker: ^2.0.2+1

【问题讨论】:

你试过flutter clean吗? @divyanshubhargava 是的,谢谢你 它工作正常还是您仍然面临这个问题? @divyanshubhargava 它不起作用,我在提问之前尝试过flutter clean。 如果你仍然面临这个问题(两个半月后,我怀疑,但无论如何),你能展示你的 build.gradle 吗?有可能您没有将 google-services.json 添加到 android/app 目录中,并在 android/build.gradle 文件中添加了 google-services 依赖项。 【参考方案1】:

请在 pubspec.yaml 文件中包含 firebase_core: ^0.4.0+1

然后运行获取包。然后使用您的代码。 它应该运行良好。否则在添加依赖项后运行flutter clean。 有关进一步的安装指南,请阅读官方文档。 FireBaseCore

【讨论】:

以上是关于Flutter 升级后出现 Flutter Cloud Firestore 错误的主要内容,如果未能解决你的问题,请参考以下文章

Flutter升级到2.0后出现的问题

Flutter升级到2.0后出现的问题

将flutter版本从v1.12.13+hotfix.8升级到1.17.0后出现这样的错误

Flutter:升级 Flutter 和 Channel 后无法再构建应用程序

升级到 Flutter 到 2.5.0 后,无法从 Android Studio 的 iOS 模拟器运行应用程序

Flutter 升级后 Flutter 找不到 git