ゲッター「インスタンス」はタイプ「Firestore」に対して定義されていません

Aug 19 2020

こんにちはみんな、私がFirestoreのインスタンスを宣言しようとしているとき、彼はこのエラーを出します!Flutterを最後のバージョンにアップグレードした後に起こっていることすべて

最終的な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_firestore0.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の公式ドキュメントを参照してください