firebase / firebase/quickstart-unity

[Bug] Firestore crash when using Android emulator

Open
#1,065 18 comments 0 reactions 0 assignees View on GitHub
api: firestore blocked-by-dependencies type: bug
Dominant language
C#
Stars
923
Forks
456
PR merge metrics
No merged PRs in 30d

Description

### [REQUIRED] Please fill in the following fields:

* Unity editor version: 2020.3.9f1
* Firebase Unity SDK version: 7.2.0
* Source you installed the SDK: Unity Package Manager with tgz
* Problematic Firebase Component: Firestore
* Other Firebase Components in use: Auth, Crashlytics, Remote Config
* Additional SDKs you are using:
* Platform you are using the Unity editor on: Windows
* Platform you are targeting: Android
* Scripting Runtime: IL2CPP

### [REQUIRED] Please describe the issue here:

```
E/AndroidRuntime( 5020): FATAL EXCEPTION: main
E/AndroidRuntime( 5020): Process: com.example.game, PID: 5020
E/AndroidRuntime( 5020): java.lang.Error: FATAL EXCEPTION [main]
E/AndroidRuntime( 5020): Unity version : 2020.3.9f1
E/AndroidRuntime( 5020): Device model : samsung SM-G955N
E/AndroidRuntime( 5020): Device fingerprint: samsung/SM-G955N/dream2lteks:5.1.1/NRD90M/500200305:user/release-keys
E/AndroidRuntime( 5020): Build Type : Release
E/AndroidRuntime( 5020): Scripting Backend : IL2CPP
E/AndroidRuntime( 5020): ABI : armeabi-v7a
E/AndroidRuntime( 5020): Strip Engine Code : true

E/AndroidRuntime( 5020): Caused by: java.lang.RuntimeException: Internal error in Cloud Firestore (22.1.2).

E/AndroidRuntime( 5020): at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:534)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(AsyncQueue.java)
E/AndroidRuntime( 5020): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime( 5020): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime( 5020): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 5020): at android.app.ActivityThread.main(ActivityThread.java:5307)
E/AndroidRuntime( 5020): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 5020): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 5020): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime( 5020): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
E/AndroidRuntime( 5020): Caused by: java.lang.IllegalArgumentException: Timestamp seconds out of range: 6967862201976803777
E/AndroidRuntime( 5020): at com.google.firebase.firestore.util.Preconditions.checkArgument(Preconditions.java:117)
E/AndroidRuntime( 5020): at com.google.firebase.Timestamp.validateRange(Timestamp.java:159)
E/AndroidRuntime( 5020): at com.google.firebase.Timestamp.(Timestamp.java:63)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.RemoteSerializer.decodeTimestamp(RemoteSerializer.java:110)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.RemoteSerializer.decodeVersion(RemoteSerializer.java:121)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.RemoteSerializer.decodeWatchChange(RemoteSerializer.java:873)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.WatchStream.onNext(WatchStream.java:106)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.WatchStream.onNext(WatchStream.java:38)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.lambda$onNext$1(AbstractStream.java:119)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.AbstractStream$StreamObserver$$Lambda$2.run(AbstractStream.java)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.AbstractStream$CloseGuardedRunner.run(AbstractStream.java:67)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.AbstractStream$StreamObserver.onNext(AbstractStream.java:110)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.remote.FirestoreChannel$1.onMessage(FirestoreChannel.java:125)
E/AndroidRuntime( 5020): at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:658)
E/AndroidRuntime( 5020): at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:643)
E/AndroidRuntime( 5020): at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
E/AndroidRuntime( 5020): at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
E/AndroidRuntime( 5020): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
E/AndroidRuntime( 5020): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime( 5020): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
E/AndroidRuntime( 5020): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
E/AndroidRuntime( 5020): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime( 5020): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime( 5020): at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:229)
E/AndroidRuntime( 5020): at java.lang.Thread.run(Thread.java:818)
W/ActivityManager( 1779): Force finishing activity 1 com.example.game/com.google.firebase.MessagingUnityPlayerActivity
```

#### Steps to reproduce:

#### Relevant Code:

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the crash on Android with Unity 2020.3.9f1, Firebase Unity SDK 7.2.0, IL2CPP, and Firestore enabled, then inspect the stack trace through MessagingUnityPlayerActivity and Firestore's WatchStream. Done means the Android emulator no longer terminates with the out-of-range Timestamp error.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, csharp, unity
Domain
databases, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.