没有为“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>>”定义吸气剂“长度”

Flutter:没有为“RetryOptions”类定义吸气剂“Pestawait”

实体模型上的自定义吸气剂?

Android Studio:房间:错误:找不到字段的吸气剂