Firebase collection.where 不适用于真正的 Android 设备

问题描述

我的应用程序使用 FireBase 进行身份验证和存储数据。 如果我在模拟器上尝试我的应用程序,或者连接设备并在调试模式下运行,firebase collection.where 工作正常,获取数据等。 但是,如果我制作了 aab/apk,并将其安装在同一设备上,则会出现错误错误状态:没有元素。 有人有同样的错误吗? 感谢您的帮助!!!

代码是:

Future<User> getLoggedInUserData(String userId) async {
    //try {
      FS.QuerySnapshot q = await collection
          .where('uid',isEqualTo: userId)
          .get();
      EasyLoading.showToast(q.docs.isEmpty.toString());
      FS.DocumentSnapshot d = await q.docs.first;
      FS.DocumentSnapshot document = await collection.doc(d.id).get();
      return User.fromSnapshot(document);
    //}catch(e){
    //  EasyLoading.showToast(e.toString());
    //}
  }

如果我在模拟器或连接的设备上运行它,它工作正常,当我制作 apk 时,将它安装到同一设备上,QuerySnapshot“q”为空。请帮忙!!!

解决方法

最后... 关键是gradle。 因为我用过的一些包需要 android/build.gradle 中的类路径 'com.android.tools.build:gradle:3.6.4' (我不能使用 build:gradle:4.1.2) 并且 build:gradle:3.6.4 不适用于 gardle 发行版 6.7,只需在 app/gradle/wrapper/gradle-wrapper.properties 中将发行版更改为 5.6.4 即可正常工作!