ไม่ได้กำหนด 'อินสแตนซ์' getter สำหรับประเภท 'Firestore'
สวัสดีทุกคนเมื่อฉันพยายามประกาศอินสแตนซ์ของ Firestore เขาให้ข้อผิดพลาดนี้! ทั้งหมดที่เกิดขึ้นหลังจากที่ฉันอัปเกรด Flutter เป็นเวอร์ชันล่าสุด

สุดท้าย databaseReference = Firestore.instance;
ฉันใช้
cloud_firestore: ^0.14.0
คำตอบ
เริ่มตั้งแต่cloud_firestore
เวอร์ชัน 0.14.0:
ในเวอร์ชันใหม่ล่าสุดcloud_firestore
คลาสFirestore
ได้เลิกใช้แล้วตอนนี้คุณต้องใช้FirebaseFirestore
ดังนั้นให้ทำดังนี้
นำเข้าแพ็คเกจ:
import 'package:cloud_firestore/cloud_firestore.dart'
ในการสร้างอินสแตนซ์:
final databaseReference = FirebaseFirestore.instance;
ลิงค์อื่น ๆ เกี่ยวกับการเปลี่ยนแปลงใน Firebase:
ไม่มีการสร้างแอป Firebase "[DEFAULT]" - โทร Firebase.initializeApp () ใน Flutter และ Firebase
คลาสที่ไม่ได้กำหนด "FirebaseUser"
cloud_firestore 0.14.0 วิธีใช้ data method
Cloud_firestore เวอร์ชัน 0.14.0 มีการเปลี่ยนแปลงดังต่อไปนี้:นำเข้าแพ็คเกจ:
import 'package:firebase_auth/firebase_auth.dart';
FirebaseUser ไม่สามารถใช้งานได้อีกต่อไป ในการประกาศผู้ใช้ Firebase ให้ใช้สิ่งต่อไปนี้ // ผู้ใช้
ในการประกาศอินสแตนซ์ Firebase ให้ใช้:
final firebaseInstance= FirebaseFirestore.instance;
แทนที่จะเรียก. เอกสาร (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