FirebaseAppDistribution
Firebase App Distribution's in-app tester API: signs the tester in, checks for new pre-release builds, updates the app to them and collects the tester's feedback.
On Android it does nothing (and fails with AppDistributionExceptionStatus.NOT_IMPLEMENTED) unless the app's pre-release builds add the full com.google.firebase:firebase-appdistribution SDK. On iOS an update opens the new release's download link, and there is no in-app feedback. The JVM has no App Distribution. See com.google.firebase.appdistribution.FirebaseAppDistribution for each member's behaviour per platform.
Properties
The underlying Firebase Android SDK object.
The Android-SDK-shaped com.google.firebase.appdistribution.FirebaseAppDistribution this wraps.
The underlying Firebase iOS SDK object, a singleton of the default app.
Whether the App Distribution tester is signed in.
Functions
Hides the notification shown by showFeedbackNotification. Does nothing on iOS and the JVM.
The new release available to the signed-in tester, or null if there is none; updateApp installs it. Throws a FirebaseAppDistributionException with AppDistributionExceptionStatus.AUTHENTICATION_FAILURE when the tester is not signed in.
Shows a notification that starts the feedback of startFeedback when the tester taps it, interrupting them as much as interruptionLevel. On Android 13 and above it needs the POST_NOTIFICATIONS permission. Does nothing on iOS and the JVM.
Signs in the App Distribution tester, presenting a Google sign-in UI; throws a FirebaseAppDistributionException if that fails.
Signs out the App Distribution tester.
Starts an activity to collect and submit feedback from the tester, with additionalFormText shown to them before they submit it. The feedback comes with the screenshot at screenshotUri (a content:// or file:// URI of a bitmap), or with one the SDK takes of the current activity when it is null. Does nothing on iOS and the JVM.
Updates the app to the release that the last checkForNewRelease returned. Collecting the flow starts the update; it emits the update's progress, completes when the update has, and throws the FirebaseAppDistributionException the update failed with (AppDistributionExceptionStatus.UPDATE_NOT_AVAILABLE without a new release). Cancelling the collection does not cancel the update. On iOS it emits nothing: the release's download link is opened, and iOS asks the tester to install it.
Updates the app to the newest release, if one is available, asking a signed-out tester to sign in first; see updateApp for the flow. It completes without an update when there is no new release.