微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 即可正常工作!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。