未为类型“ Firestore”定义吸气剂“实例”

时间:2020-08-18 17:37:18

标签: firebase flutter dart google-cloud-firestore

大家好,当我尝试声明Firestore实例时,他给出了这个错误! 我将Flutter升级到最新版本后,所有事情都会发生

screenshot

最终数据库参考= Firestore.instance;

我使用

cloud_firestore: ^0.14.0

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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

Similary用于其他查询,例如,使用.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官方文档