You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多款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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:46:13