getter '인스턴스'가 'Firestore'유형에 대해 정의되지 않았습니다.

Aug 19 2020

안녕하세요, Firestore의 인스턴스를 선언하려고 할 때 그는이 오류를 제공합니다! Flutter를 최신 버전으로 업그레이드 한 후 일어나는 모든 일

final databaseReference = Firestore.instance;

나는 사용한다

cloud_firestore: ^0.14.0

답변

4 PeterHaddad Aug 19 2020 at 00:38

cloud_firestore버전 0.14.0 부터 :

의 최신 버전 cloud_firestore에서 클래스 Firestore는 더 이상 사용되지 않습니다. 이제를 사용해야합니다 FirebaseFirestore.

패키지 가져 오기 :

import 'package:cloud_firestore/cloud_firestore.dart'

인스턴스를 생성하려면 :

final databaseReference  = FirebaseFirestore.instance;

Firebase의 변경 사항과 관련된 기타 링크 :

Firebase 앱 '[DEFAULT]'가 생성되지 않았습니다. Flutter 및 Firebase에서 Firebase.initializeApp ()을 호출하세요.

정의되지 않은 클래스 'FirebaseUser'

cloud_firestore 0.14.0 데이터 메소드 사용 방법

3 ombiro Aug 20 2020 at 12:54

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 문서 참조