多款Firestore后端Android应用突发PERMISSION_DENIED崩溃求助
问题:多款Firestore后端Android应用突发时段性PERMISSION_DENIED崩溃
我在Google Play上架了多款以Firestore为后端的Android应用,均拥有较高日活跃用户数(DAU),长期运行正常。但昨晚(UTC+5时区的01:00-07:00),Firebase Crashlytics控制台显示多款应用同时出现大量崩溃报告,均触发相同异常:Fatal Exception: com.google.android.gms.tasks.RuntimeExecutionException com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Missing or insufficient permissions.
异常仅在该时段出现后自行停止,我已确认:
- 近期未修改任何代码或Firestore规则
- 测试设备上无法复现问题
- Firestore使用量远低于配额上限
相关截图
- 保留原始类名的应用截图
- 混淆类名的应用截图
堆栈信息
Caused by com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Missing or insufficient permissions. at com.google.firebase.firestore.util.Util.exceptionFromStatus(Util.java:112) at com.google.firebase.firestore.core.EventManager.onError(EventManager.java:166) at com.google.firebase.firestore.core.SyncEngine.removeAndCleanupTarget(SyncEngine.java:596) at com.google.firebase.firestore.core.SyncEngine.handleRejectedListen(SyncEngine.java:432) at com.google.firebase.firestore.core.MemoryComponentProvider$RemoteStoreCallback.handleRejectedListen(MemoryComponentProvider.java:104) at com.google.firebase.firestore.remote.RemoteStore.processTargetError(RemoteStore.java:581) at com.google.firebase.firestore.remote.RemoteStore.handleWatchChange(RemoteStore.java:465) at com.google.firebase.firestore.remote.RemoteStore.access$100(RemoteStore.java:57) at com.google.firebase.firestore.remote.RemoteStore$1.onWatchChange(RemoteStore.java:180) at com.google.firebase.firestore.remote.WatchStream.onNext(WatchStream.java:109) at com.google.firebase.firestore.remote.WatchStream.onNext(WatchStream.java:38) at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1$com-google-firebase-firestore-remote-AbstractStream$StreamObserver(AbstractStream.java:119) at com.google.firebase.firestore.remote.AbstractStream$StreamObserver$$ExternalSyntheticLambda2.run(:4) at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:67) at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onNext(AbstractStream.java:110) at com.google.firebase.firestore.remote.FirestoreChannel$1.onMessage(FirestoreChannel.java:140) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:661) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:646) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:234) at java.lang.Thread.run(Thread.java:919)
我想明确几个问题:
- 多款应用同时触发该权限拒绝异常的原因是什么?
- 如何避免这类问题再次发生?
- 是否有可能是Firebase服务器或网络的临时故障导致?
- 是否有其他开发者遇到过类似的时段性权限异常问题?
内容的提问来源于stack exchange,提问作者Sajid
相关产品推荐
相关产品推荐

