Le getter 'instance' n'est pas défini pour le type 'Firestore'

Aug 19 2020

Salut les gars quand j'essaie de déclarer une instance de Firestore, il donne cette erreur ! tout ce qui se passe après la mise à niveau de mon Flutter vers la dernière version

référence de base de données finale = Firestore.instance ;

j'utilise

cloud_firestore: ^0.14.0

Réponses

4 PeterHaddad Aug 19 2020 at 00:38

À partir de cloud_firestorela version 0.14.0 :

Dans la dernière version de cloud_firestore, la classe Firestoreétait obsolète, vous devez maintenant utiliser FirebaseFirestore, alors faites simplement :

Importez le package :

import 'package:cloud_firestore/cloud_firestore.dart'

Pour créer une instance :

final databaseReference  = FirebaseFirestore.instance;

Autres liens concernant les changements sur Firebase :

Aucune application Firebase '[DEFAULT]' n'a été créée - appelez Firebase.initializeApp() dans Flutter et Firebase

Classe non définie 'FirebaseUser'

cloud_firestore 0.14.0 comment utiliser la méthode data

3 ombiro Aug 20 2020 at 12:54

Cloud_firestore version 0.14.0 comporte les modifications suivantes : importez le package :

import 'package:firebase_auth/firebase_auth.dart';

FirebaseUser n'est plus disponible. Pour déclarer un utilisateur Firebase, utilisez le suivant ; //Utilisateur,

Pour déclarer une instance Firebase, utilisez :

final firebaseInstance= FirebaseFirestore.instance;

au lieu d'appeler .document(uid), utilisez :

.doc(uid)

par exemple:

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

va devenir:

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

De même pour les autres requêtes, utilisez .data() par opposition à .data([]} par exemple

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

sera réécrit comme suit :

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

Pour un utilisateur : utilisez :

User user = FirebaseAuth.instance.currentUser;

Et de nombreux autres changements - reportez-vous à la documentation officielle de Firestore/Firebase