FirebaseCrashlytics

class FirebaseCrashlytics


The Firebase Crashlytics API provides methods to annotate and manage fatal crashes, non-fatal errors, and ANRs captured and reported to Firebase Crashlytics.

By default, Firebase Crashlytics is automatically initialized.

Call getInstance to get the singleton instance of FirebaseCrashlytics.

Summary

Public functions

Task<Boolean!>

Checks a device for any fatal crash, non-fatal error, or ANR reports that haven't yet been sent to Crashlytics.

Unit

If automatic data collection is disabled, this method queues up all the reports on a device for deletion.

Boolean

Checks whether the app crashed on its previous run.

java-static FirebaseCrashlytics

Gets the singleton FirebaseCrashlytics instance.

Unit
log(message: String)

Logs a message that's included in the next fatal, non-fatal, or ANR report.

Unit

Records a non-fatal report to send to Crashlytics.

Unit

If automatic data collection is disabled, this method queues up all the reports on a device to send to Crashlytics.

Unit

Enables or disables the automatic data collection configuration for Crashlytics.

Unit

Enables or disables the automatic data collection configuration for Crashlytics.

Unit
setCustomKey(key: String, value: String)

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Unit
setCustomKey(key: String, value: Boolean)

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Unit
setCustomKey(key: String, value: Double)

Sets a custom key and value that are associated with subsequent fatal and non-fatal reports.

Unit
setCustomKey(key: String, value: Float)

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Unit
setCustomKey(key: String, value: Int)

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Unit
setCustomKey(key: String, value: Long)

Records a custom key and value to be associated with subsequent fatal, non-fatal, and ANR reports.

Unit

Sets multiple custom keys and values that are associated with subsequent fatal, non-fatal, and ANR reports.

Unit
setUserId(identifier: String)

Records a user ID (identifier) that's associated with subsequent fatal, non-fatal, and ANR reports.

Extension functions

Unit

Associates all key-value parameters with the reports

Unit

This function is deprecated. Migrate to use the KTX API from the main module: https://firebase.google.com/docs/android/kotlin-migration.

Public functions

checkForUnsentReports

fun checkForUnsentReports(): Task<Boolean!>

Checks a device for any fatal crash, non-fatal error, or ANR reports that haven't yet been sent to Crashlytics. If automatic data collection is enabled, then reports are uploaded automatically and this always returns false. If automatic data collection is disabled, this method can be used to check whether the user opts-in to send crash reports from their device.

Returns
Task<Boolean!>

a Task that is resolved with the result.

deleteUnsentReports

fun deleteUnsentReports(): Unit

If automatic data collection is disabled, this method queues up all the reports on a device for deletion. Otherwise, this method is a no-op.

didCrashOnPreviousExecution

fun didCrashOnPreviousExecution(): Boolean

Checks whether the app crashed on its previous run.

Returns
Boolean

true if a crash was recorded during the previous run of the app.

getInstance

java-static fun getInstance(): FirebaseCrashlytics

Gets the singleton FirebaseCrashlytics instance.

The default FirebaseApp instance must be initialized before this function is called. See FirebaseApp for more information.

log

fun log(message: String): Unit

Logs a message that's included in the next fatal, non-fatal, or ANR report.

Logs are visible in the session view on the Firebase Crashlytics console.

Newline characters are stripped and extremely long messages are truncated. The maximum log size is 64k. If exceeded, the log rolls such that messages are removed, starting from the oldest.

Parameters
message: String

the message to be logged

recordException

fun recordException(throwable: Throwable): Unit

Records a non-fatal report to send to Crashlytics.

Parameters
throwable: Throwable

a Throwable to be recorded as a non-fatal event.

sendUnsentReports

fun sendUnsentReports(): Unit

If automatic data collection is disabled, this method queues up all the reports on a device to send to Crashlytics. Otherwise, this method is a no-op.

setCrashlyticsCollectionEnabled

fun setCrashlyticsCollectionEnabled(enabled: Boolean?): Unit

Enables or disables the automatic data collection configuration for Crashlytics.

If this is set, it overrides any automatic data collection settings configured in the AndroidManifest.xml as well as any Firebase-wide settings. If set to null, the override is cleared.

If automatic data collection is disabled for Crashlytics, crash reports are stored on the device. To check for reports, use the checkForUnsentReports method. Use sendUnsentReports to upload existing reports even when automatic data collection is disabled. Use deleteUnsentReports to delete any reports stored on the device without sending them to Crashlytics.

Parameters
enabled: Boolean?

whether to enable or disable automatic data collection. When set to false, the new value does not apply until the next run of the app. When set to null, the override is cleared and automatic data collection settings are determined by the configuration in your AndroidManifest.xml or other Firebase-wide settings.

setCrashlyticsCollectionEnabled

fun setCrashlyticsCollectionEnabled(enabled: Boolean): Unit

Enables or disables the automatic data collection configuration for Crashlytics.

If this is set, it overrides any automatic data collection settings configured in the AndroidManifest.xml as well as any Firebase-wide settings.

If automatic data collection is disabled for Crashlytics, crash reports are stored on the device. To check for reports, use the checkForUnsentReports method. Use sendUnsentReports to upload existing reports even when automatic data collection is disabled. Use deleteUnsentReports to delete any reports stored on the device without sending them to Crashlytics.

Parameters
enabled: Boolean

whether to enable automatic data collection. When set to false, the new value does not apply until the next run of the app. To disable data collection by default for all app runs, add the firebase_crashlytics_collection_enabled flag to your app's AndroidManifest.xml.

setCustomKey

fun setCustomKey(key: String, value: String): Unit

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. New keys beyond that limit are ignored. Keys or values that exceed 1024 characters are truncated.

Parameters
key: String

A unique key

value: String

A value to be associated with the given key

setCustomKey

fun setCustomKey(key: String, value: Boolean): Unit

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. New keys beyond that limit are ignored. Keys or values that exceed 1024 characters are truncated.

Parameters
key: String

A unique key

value: Boolean

A value to be associated with the given key

setCustomKey

fun setCustomKey(key: String, value: Double): Unit

Sets a custom key and value that are associated with subsequent fatal and non-fatal reports.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal or non-fatal event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. New keys beyond that limit are ignored. Keys or values that exceed 1024 characters are truncated.

Parameters
key: String

A unique key

value: Double

A value to be associated with the given key

setCustomKey

fun setCustomKey(key: String, value: Float): Unit

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. New keys beyond that limit are ignored. Keys or values that exceed 1024 characters are truncated.

Parameters
key: String

A unique key

value: Float

A value to be associated with the given key

setCustomKey

fun setCustomKey(key: String, value: Int): Unit

Sets a custom key and value that are associated with subsequent fatal, non-fatal, and ANR reports.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. New keys beyond that limit are ignored. Keys or values that exceed 1024 characters are truncated.

Parameters
key: String

A unique key

value: Int

A value to be associated with the given key

setCustomKey

fun setCustomKey(key: String, value: Long): Unit

Records a custom key and value to be associated with subsequent fatal, non-fatal, and ANR reports.

Multiple calls to this method with the same key will update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event will be associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

A maximum of 64 key/value pairs can be written, and new keys added beyond that limit will be ignored. Keys or values that exceed 1024 characters will be truncated.

Parameters
key: String

A unique key

value: Long

A value to be associated with the given key

setCustomKeys

fun setCustomKeys(keysAndValues: CustomKeysAndValues): Unit

Sets multiple custom keys and values that are associated with subsequent fatal, non-fatal, and ANR reports. This method is intended as an alternative to setCustomKey in order to reduce the computational load of writing out multiple key/value pairs at the same time.

Multiple calls to this method with the same key update the value for that key.

The value of any key at the time of a fatal, non-fatal, or ANR event is associated with that event.

Keys and associated values are visible in the session view on the Firebase Crashlytics console.

Accepts a maximum of 64 key/value pairs. If calling this method results in the number of custom keys exceeding this limit, only some of the keys will be logged (however many are needed to get to 64). Which keys are logged versus dropped is unpredictable as there is no intrinsic sorting of keys. Keys or values that exceed 1024 characters are truncated.

Parameters
keysAndValues: CustomKeysAndValues

A dictionary of keys and the values to associate with each key

setUserId

fun setUserId(identifier: String): Unit

Records a user ID (identifier) that's associated with subsequent fatal, non-fatal, and ANR reports.

The user ID is visible in the session view on the Firebase Crashlytics console.

Identifiers longer than 1024 characters will be truncated.

Parameters
identifier: String

a unique identifier for the current user

Extension functions

setCustomKeys

fun FirebaseCrashlytics.setCustomKeys(init: KeyValueBuilder.() -> Unit): Unit

Associates all key-value parameters with the reports

setCustomKeys

fun FirebaseCrashlytics.setCustomKeys(init: KeyValueBuilder.() -> Unit): Unit

Associates all key-value parameters with the reports

Deprecation Notice: The Kotlin extensions (KTX) APIs have been added to their respective main modules, and the Kotlin extension (KTX) APIs in com.google.firebase:firebase-crashlytics-ktx are now deprecated. As early as April 2024, we'll no longer release KTX modules. For details, see the FAQ about this initiative.