简体   繁体   English

Flutter Firestore 未检索已发布的 android apk 中的任何数据

[英]Flutter Firestore doesn't retrieve any data in released android apk

I have tried to develop a flutter application that uses firestore and firebase auth for authentication.我尝试开发一个 flutter 应用程序,它使用 firestore 和 firebase auth 进行身份验证。

In debug mode, when I test the application it retrieves data from firestore and show it.在调试模式下,当我测试应用程序时,它会从 firestore 检索数据并显示它。 and firebase auth also work properly.和 firebase auth 也可以正常工作。

But in release mode, Firestore doesn't retrieve any data and shows an error given below.但在发布模式下,Firestore 不会检索任何数据并显示如下错误。 but Firebase auth perfectly works in release mode application.但 Firebase auth 在发布模式应用程序中完美运行。

I catch the error in release mode by using android studio build variant feature.我通过使用 android 工作室构建变体功能在发布模式下捕获了错误。

Thank you for reading.感谢您阅读。

E/io.grpc.internal.S1: [Channel<1>: (firestore.googleapis.com)] Uncaught exception in the SynchronizationContext. Panic!
    java.lang.ExceptionInInitializerError
        at m1.j.Q(Unknown Source:22)
        at io.grpc.internal.D.Q(Unknown Source:4)
        at io.grpc.internal.k1.A(:3)
        at io.grpc.internal.a1.run(:2)
        at k1.t1.a(Unknown Source:24)
        at k1.t1.execute(:2)
        at io.grpc.internal.K1.b(Unknown Source:9)
        at io.grpc.internal.u0.a(:10)
        at io.grpc.internal.u0.run(Unknown Source:38)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: o1.a.values []
        at java.lang.Enum.enumValues(Enum.java:270)
        at java.lang.Enum.access$000(Enum.java:61)
        at java.lang.Enum$1.create(Enum.java:277)
        at java.lang.Enum$1.create(Enum.java:275)
        at libcore.util.BasicLruCache.get(BasicLruCache.java:63)
        at java.lang.Enum.getSharedConstants(Enum.java:289)
        at java.lang.Class.getEnumConstantsShared(Class.java:2428)
        at java.util.EnumMap.getKeyUniverse(EnumMap.java:755)
        at java.util.EnumMap.<init>(EnumMap.java:138)
        at m1.v.<clinit>(:1)
        at m1.j.Q(Unknown Source:22) 
        at io.grpc.internal.D.Q(Unknown Source:4) 
        at io.grpc.internal.k1.A(:3) 
        at io.grpc.internal.a1.run(:2) 
        at k1.t1.a(Unknown Source:24) 
        at k1.t1.execute(:2) 
        at io.grpc.internal.K1.b(Unknown Source:9) 
        at io.grpc.internal.u0.a(:10) 
        at io.grpc.internal.u0.run(Unknown Source:38) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:919) 
     Caused by: java.lang.NoSuchMethodException: o1.a.values []
        at java.lang.Class.getMethod(Class.java:2072)
        at java.lang.Class.getDeclaredMethod(Class.java:2050)
        at java.lang.Enum.enumValues(Enum.java:267)

W/Firestore: (23.0.1) [Z]: (3a36b20) Stream closed with status: o1{code=INTERNAL, description=Panic! This is a bug!, cause=java.lang.ExceptionInInitializerError
        at m1.j.Q(Unknown Source:22)
        at io.grpc.internal.D.Q(Unknown Source:4)
        at io.grpc.internal.k1.A(:3)
        at io.grpc.internal.a1.run(:2)
        at k1.t1.a(Unknown Source:24)
        at k1.t1.execute(:2)
        at io.grpc.internal.K1.b(Unknown Source:9)
        at io.grpc.internal.u0.a(:10)
        at io.grpc.internal.u0.run(Unknown Source:38) 

This is a common error with Firestore.这是 Firestore 的常见错误。 The problem is with the minifyEnabled and shrinkResources fields in android/app/build.gradle .问题出在android/app/build.gradle中的minifyEnabledshrinkResources字段。

You should be able to solve this by changing your release build type in android/app/build.gradle as follows:您应该能够通过更改android/app/build.gradle中的发布构建类型来解决此问题,如下所示:

buildTypes {
...
    release {
        ...
        signingConfig signingConfigs.release
        minifyEnabled false
        shrinkResources false
    }
}  

Of course this is not an ideal "solution" as the app-size becomes larger.当然,这不是一个理想的“解决方案”,因为应用程序的大小会变大。 But the Firebase team says they can't help because we use flutter which isn't officially supported...但是 Firebase 团队表示他们无能为力,因为我们使用的是 flutter,它不受官方支持...

Here are related issues: https://github.com/FirebaseExtended/flutterfire/discussions/5708#discussioncomment-925997下面是相关问题: https://github.com/FirebaseExtended/flutterfire/discussions/5708#discussioncomment-925997
https://github.com/FirebaseExtended/flutterfire/issues/1412 https://github.com/FirebaseExtended/flutterfire/issues/1412

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM