-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Description
When a user logs out of my app I detach various listeners from different paths.
Sometimes it logs them out fine however around 1 in 5 times the app will crash after the user has been logged out. Here is the output from the console:
06-20 20:41:37.203 29260 29734 W SyncTree: Listen at /users/liApgOzu1pg6jHSUp29xQiqo8T83/riders failed: DatabaseError: Permission denied
06-20 20:41:37.219 29260 29734 W SyncTree: Listen at /events failed: DatabaseError: Permission denied
06-20 20:41:37.221 29260 29260 D QuickLaps: Uno.Exception: This promise is already resolved or rejected
06-20 20:41:37.221 29260 29260 D QuickLaps: at Uno.Threading.Future`1.InternalReject(Uno.Exception)
06-20 20:41:37.221 29260 29260 D QuickLaps: at Uno.Threading.Promise`1.Reject(Uno.Exception)
06-20 20:41:37.221 29260 29260 D QuickLaps: at Firebase.Database.Read.Reject(string)
06-20 20:41:37.221 29260 29260 D AndroidRuntime: Shutting down VM
06-20 20:41:37.223 29260 29260 E AndroidRuntime: FATAL EXCEPTION: main
06-20 20:41:37.223 29260 29260 E AndroidRuntime: Process: io.github.shnupta.quick_laps, PID: 29260
06-20 20:41:37.223 29260 29260 E AndroidRuntime: java.lang.RuntimeException: Uno.Exception: This promise is already resolved or rejected
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at Uno.Threading.Future`1.InternalReject(Uno.Exception)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at Uno.Threading.Promise`1.Reject(Uno.Exception)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at Firebase.Database.Read.Reject(string)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.Bindings.ExternedBlockHost.callUno_Firebase_Database_Read_Reject1454(Native Method)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.foreign.Firebase.Database.Read$1.onCancelled(Read.java:59)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.google.firebase.database.Query$1.onCancelled(Unknown Source:2)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.google.android.gms.internal.zzaih.zza(Unknown Source:2)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.google.android.gms.internal.zzajf.zzctc(Unknown Source:4)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.google.android.gms.internal.zzajk$1.run(Unknown Source:62)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:790)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6753)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
06-20 20:41:37.223 29260 29260 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
06-20 20:41:37.226 592 592 E SELinux : avc: denied { find } for service=opdiagnose pid=29260 uid=10263 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:opdiagnose_service:s0 tclass=service_manager permissive=0
06-20 20:41:37.226 592 592 E SELinux : avc: denied { find } for service=opdiagnose pid=29260 uid=10263 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:opdiagnose_service:s0 tclass=service_manager permissive=0
06-20 20:41:37.227 29260 29260 W OPDiagnose: getService:OPDiagnoseService NULL
06-20 20:41:37.233 29260 31073 D OSTracker: OS Event: crash
06-20 20:41:37.347 29260 31073 D AbstractTracker: Event success
06-20 20:41:37.367 29260 29734 W SyncTree: Listen at /users/riders failed: DatabaseError: Permission denied
06-20 20:41:37.381 29260 29734 W SyncTree: Listen at /events failed: DatabaseError: Permission denied
Looking at the source, I'm confused as to why the Android method for DetachListeners is empty? If this is supposed to be then is there a way to check whether the current promise has already been resolved before calling a read?
Metadata
Metadata
Assignees
Labels
No labels