没有为“Firestore”类型定义吸气剂“实例”
Posted
技术标签:
【中文标题】没有为“Firestore”类型定义吸气剂“实例”【英文标题】:The getter 'instance' isn't defined for the type 'Firestore' 【发布时间】:2020-12-07 22:45:19 【问题描述】:大家好,当我尝试声明 Firestore 实例时,他给出了这个错误! 在我将 Flutter 升级到最新版本后发生的所有事情
final databaseReference = Firestore.instance;
我用
cloud_firestore: ^0.14.0
【问题讨论】:
是的,谢谢你,我没有注意到它的新更新 【参考方案1】:从cloud_firestore
版本0.14.0开始:
在最新版本的cloud_firestore
中,Firestore
类已被弃用,现在您必须使用FirebaseFirestore
,所以这样做:
导入包:
import 'package:cloud_firestore/cloud_firestore.dart'
创建实例:
final databaseReference = FirebaseFirestore.instance;
有关 Firebase 更改的其他链接:
No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() in Flutter and Firebase
Undefined class 'FirebaseUser'
cloud_firestore 0.14.0 how to use the data method
【讨论】:
【参考方案2】:Cloud_firestore 0.14.0 版有以下变化: 导入包:
import 'package:firebase_auth/firebase_auth.dart';
FirebaseUser 不再可用。要声明 Firebase 用户,请使用以下内容; //用户,
要声明 Firebase 实例,请使用:
final firebaseInstance= FirebaseFirestore.instance;
不要调用 .document(uid),而是使用:
.doc(uid)
例如:
await db
.collection(Str.USERS_MESSAGE_LIST)
.document(uid)
.collection(Str.MESSAGE_COLLECTION)
.document("$itemId$sellerId")
.setData(...
会变成:
await db
.collection(Str.USERS_MESSAGE_LIST)
.doc(uid)//note this
.collection(Str.MESSAGE_COLLECTION)
.document("$itemId$sellerId")
.set(//note this
与其他查询类似,使用 .data() 而不是 .data([] 例如
.startAfter([lastDocument.data[Str.ITEM_NAME]]).limit(perPage);
将改写为:
.startAfter([lastDocument.data()[Str.ITEM_NAME]]).limit(perPage);//note the () after data
对于用户:使用:
User user = FirebaseAuth.instance.currentUser;
还有许多其他更改 - 请参阅 Firestore/Firebase 官方文档
【讨论】:
以上是关于没有为“Firestore”类型定义吸气剂“实例”的主要内容,如果未能解决你的问题,请参考以下文章
没有为“UserCredential”类型定义吸气剂“uid”[重复]
Flutter - 错误:没有为“对象”类型定义吸气剂“文档”
没有为类型“Future<List<Item>>”定义吸气剂“长度”