web-dev-qa-db-ja.com

Flutter:[Cloud_FireStore / Unknown] NoSuchMethodError:NULLに無効なメンバー: 'includeMetaDataChanges'(Flutter Web)

私はFriebase-FireStoreからデータを取得してからモデルに変換しています、私は同じコードと他のプロジェクトへのアプローチを使用しました(Webプロジェクト)、それはうまく機能しますが、それはうまくいかないので、私はしません。理由を知っている。私はFlutterバージョンをアップグレードし、Flutter Doctorを実行し、環境設定に問題はありません。これがコードです:

class dbService{

static final CollectionReference myCollection = 
  FirebaseFirestore.instance.collection('myCollection');

static Future<myModel> getMyInfo() async{
myModel sanaa ;
print('this line to print');
final QuerySnapshot myInfo =await myCollection.limit(1).get();
myInfo.docs.forEach((element) {
  print(element.data()['name']);
 sanaa= new myModel(
      name:element.data()['name'].toString(),
      title: element.data()["title"].toString(),
      img: element.data()['img'].toString(),
     );
  print('\n print  ------ ');
  print(element.data()['name']);
  print('   that is');
}

);
return sanaa;

}
}
class dbManager{
 Stream<myModel> myInfoStream() async*{
 yield await dbService.getMyInfo();
 }
}
   class _aboutStateState extends State<aboutState> { 
   Stream stream ;
   dbManager mng = new dbManager();
  @override
   void initState() {
   // TODO: implement initState
    stream = mng.myInfoStream();
    super.initState();
   }
    @override
  Widget build(BuildContext context) {
    return Container(
    color: Colors.pink[300],
    child: StreamBuilder<myModel>(
     stream: stream,
     builder: (context, snapshot){
       if(snapshot.hasError){
         print(snapshot.error);
        return Center(child: Text('Something went wrong , please try again later'),);
      }
      else if(snapshot.hasData){
  
        return  Text("${snapshot.data.name}");
      
      }
      else {
        return Center(child: CircularProgressIndicator());
      }
    },
  ),
 _

私はこのエラーを手に入れました

this line to print
[cloud_firestore/unknown] NoSuchMethodError: invalid member on null: 'includeMetadataChanges'
 _

しかし、それをモデルに変換することなくFireStoreに直接接続すると、それは細かく機能し、画面にデータを印刷します。

child:FutureBuilder(
   future: me.doc(id).get(),
    
    builder: (context, snapshot){
      if(snapshot.hasError){
        print(snapshot.error);
        return Center(child: Text('Something went wrong , please try again later'),);
      }
      else if(snapshot.hasData){
       // print("${snapshot.data.data()['app_pics'][1]}  \n${snapshot.data.data()['img']}");
        return  Text("${snapshot.data.data()['app_pics'][1]}");
        
      }
      else {
        return Center(child: CircularProgressIndicator());
      }
    },
  ),
 _

私はフラッタードクターを運営しています

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, 1.24.0-10.2.pre, on Microsoft Windows [Version 6.3.9600], locale
  en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 4.0)
[√] VS Code (version 1.51.0)
[√] Connected device (3 available)

• No issues found!
 _

助けが必要です enter image description here

4
Sana'a Al-ahdal

これを試してみてくださいバージョン

firebase_core: ^0.5.2
cloud_firestore: ^0.14.3
 _

詳細については、このgithub リンク をチェックしてください。

1
A R