firebase / quickstart-unity

Firebase Quickstart Samples for Unity
https://firebase.google.com/games
Apache License 2.0
835 stars 433 forks source link

Firebase or specific Android versions trigger app_clear_data on first_open, disrupting our funnel #1390

Open fatihforgemaster opened 2 weeks ago

fatihforgemaster commented 2 weeks ago

[REQUIRED] Please fill in the following fields:

[REQUIRED] Please describe the issue here:

We observe approximately 50% abandonment at the first_open event. image Through investigation, we found that certain devices (e.g., Samsung S23 Ultra and S24 Ultra on Android 13 and 14) only log first_open and app_clear_data in the initial session, with no further events recorded.

Example User at Firebase User Explorer: image

(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.) We don’t have specific reproduction steps, but during DebugView, events are being sent correctly, and there is no app_clear_data event.

Steps to reproduce:

Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)?

What's the issue repro rate? (eg 100%, 1/5 etc)

What happened? How can we make the problem occur? This could be a description, log/console output, etc.

If you have a downloadable sample project that reproduces the bug you're reporting, you will likely receive a faster response on your issue.

Relevant Code:

it might be related with androidManifest file so i will share some of them; we are using firebase activity:

<application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name" tools:replace="android:allowBackup" android:allowBackup="false" android:isGame="true">
    <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <service android:name="com.google.firebase.messaging.MessageForwardingService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true"></service>
</application>

Some Permissions in use:

"android.permission.WRITE_EXTERNAL_STORAGE"
"android.permission.READ_EXTERNAL_STORAGE"

Initialization Code: Firebase initializes upon checking dependencies After initialization we start sending events

FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
  var dependencyStatus = task.Result;
  if (dependencyStatus == DependencyStatus.Available)
  {
    IsInitialized = true;
  }
  else
  {
    IsInitialized = false;
  }
}, TaskScheduler.FromCurrentSynchronizationContext());
google-oss-bot commented 2 weeks ago

This issue does not seem to follow the issue template. Make sure you provide all the required information.