L''istanza' getter non è definita per il tipo 'Firestore'

Aug 19 2020

Ciao ragazzi quando sto cercando di dichiarare un'istanza di Firestore ha dato questo errore! tutto ciò che accade dopo aver aggiornato il mio Flutter all'ultima versione

databaseReference finale = Firestore.instance;

Io uso

cloud_firestore: ^0.14.0

Risposte

4 PeterHaddad Aug 19 2020 at 00:38

A partire dalla cloud_firestoreversione 0.14.0:

Nella versione più recente di cloud_firestore, la classe Firestoreè stata deprecata ora devi usare FirebaseFirestore, quindi fai semplicemente:

Importa il pacchetto:

import 'package:cloud_firestore/cloud_firestore.dart'

Per creare un'istanza:

final databaseReference  = FirebaseFirestore.instance;

Altri collegamenti relativi alle modifiche su Firebase:

Nessuna app Firebase '[DEFAULT]' è stata creata: chiama Firebase.initializeApp() in Flutter e Firebase

Classe non definita "FirebaseUser"

cloud_firestore 0.14.0 come utilizzare il metodo dei dati

3 ombiro Aug 20 2020 at 12:54

Cloud_firestore versione 0.14.0 presenta le seguenti modifiche: importa il pacchetto:

import 'package:firebase_auth/firebase_auth.dart';

FirebaseUser non è più disponibile. Per dichiarare un utente Firebase, utilizzare quanto segue; //Utente,

Per dichiarare un'istanza Firebase, utilizza:

final firebaseInstance= FirebaseFirestore.instance;

invece della chiamata di .document(uid), usa:

.doc(uid)

per esempio:

    await db
    .collection(Str.USERS_MESSAGE_LIST)
    .document(uid)
    .collection(Str.MESSAGE_COLLECTION)
    .document("$itemId$sellerId")
    .setData({...

diventerà:

    await db
    .collection(Str.USERS_MESSAGE_LIST)
    .doc(uid)//note this
    .collection(Str.MESSAGE_COLLECTION)
    .document("$itemId$sellerId")
    .set({//note this

Allo stesso modo per altre query, uso di .data() al contrario di .data([]} ad es

.startAfter([lastDocument.data[Str.ITEM_NAME]]).limit(perPage);

sarà riscritto come:

.startAfter([lastDocument.data()[Str.ITEM_NAME]]).limit(perPage);//note the () after data

Per un utente: utilizzare:

User user = FirebaseAuth.instance.currentUser;

E molte altre modifiche: fai riferimento alla documentazione ufficiale di Firestore/Firebase