FirebaseFirestore.instance
          .collection('women')
          .snapshots()
          .map((snapshot) => snapshot.docs
              .map((document) => CategoryAvatar.fromJson({...document.data()}))
              .toList())
          .listen((avatar) {
        avatarsInfo.addAll(avatar);
当我开始调试时,在上面显示的代码第三行的IDE中发生了此异常:
发生异常。
NoSuchMethodError(NoSuchMethodError:方法'add'在null上调用。
接收者:null
尝试调用:add('MethodChannelQuerySnapshot'的实例))

同样在调试时,由于某些奇怪的原因,调试器总是会通过第五行和第六行,我的意思是程序无法执行这些行。
当我运行代码时,以下文本显示在调试控制台上
D / HwCustConnectivityManagerImpl(8132):isBlockNetworkRequestByNonAis,INVALID_SUBSCRIPTION_ID
D / ConnectivityManager(8132):requestNetwork,调用的应用程序是:com.sincerity.sandra
W / DynamiteModule(8132):找不到providerinstaller的本地模块描述符类。
I / DynamiteModule(8132):考虑本地模块providerinstaller:0和远程模块providerinstaller:0
W / ProviderInstaller(8132):无法加载providerinstaller模块:找不到可接受的模块。本地版本为0,远程版本为0。
D / HwCustConnectivityManagerImpl(8132):isBlockNetworkRequestByNonAis,INVALID_SUBSCRIPTION_ID

最佳答案

通过在查询的开头添加 await 关键字已解决了该问题

     await _firebaseFirestore.collection('women').get().then(
        (QuerySnapshot querySnapshot) {
          querySnapshot.docs.forEach(
            (doc) {
              avatarsInfo.add(
                CategoryAvatar.fromJson(
                  {
                    ...doc.data(),
                  },
                ),
              );
            },
          );
        },
      );

关于firebase - flutter中没有这样的方法,对null调用了方法add,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63701434/

10-12 03:03