<commit_before># Firebase Android Open Source Development

This repository contains a subset of the Firebase Android SDK source. It
currently includes the following Firebase libraries, and some of their
dependencies:

  * `firebase-abt`
  * `firebase-common`
  * `firebase-common-ktx`
  * `firebase-crashlytics`
  * `firebase-crashlytics-ktx`
  * `firebase-crashlytics-ndk`
  * `firebase-database`
  * `firebase-database-ktx`
  * `firebase-database-collection`
  * `firebase-datatransport`
  * `firebase-firestore`
  * `firebase-firestore-ktx`
  * `firebase-functions`
  * `firebase-functions-ktx`
  * `firebase-inappmessaging`
  * `firebase-inappmessaging-ktx`
  * `firebase-inappmessaging-display`
  * `firebase-inappmessaging-display-ktx`
  * `firebase-remote-config`
  * `firebase-remote-config-ktx`
  * `firebase-storage`
  * `firebase-storage-ktx`


Firebase is an app development platform with tools to help you build, grow and
monetize your app. More information about Firebase can be found at
https://firebase.google.com.

## Table of contents

1. [Getting Started](#getting-started)
1. [Testing](#testing)
   1. [Unit Testing](#unit-testing)
   1. [Integration Testing](#integration-testing)
1. [Proguarding](#proguarding)
   1. [APIs used via reflection](#APIs-used-via-reflection)
   1. [APIs intended for developer
   consumption](#APIs-intended-for-developer-consumption)
   1. [APIs intended for other Firebase
   SDKs](#APIs-intended-for-other-firebase-sdks)
1. [Publishing](#publishing)
   1. [Dependencies](#dependencies)
   1. [Commands](#commands)
1. [Code Formatting](#code-formatting)
1. [Contributing](#contributing)

## Getting Started

* Install the latest Android Studio (should be 3.0.1 or later)
* Clone the repo (`git clone <EMAIL>:firebase/firebase-android-sdk.git`)
* Import the firebase-android-sdk gradle project into Android Studio using the
  **Import project(Gradle, Eclipse ADT, etc.** option.

## Testing

Firebase Android libraries exercise all three types of tests recommended by the
[Android Testing Pyramid](https://developer.android.com/training/testing/fundamentals#testing-pyramid).
Depending on the requirements of the specific project, some or all of these
tests may be used to support changes.

> :warning: **Running tests with errorprone**
>
> To run with errorprone add `withErrorProne` to the command line, e.g.
>
> `./gradlew :<firebase-project>:check withErrorProne`.

### Unit Testing

These are tests that run on your machine's local Java Virtual Machine (JVM). At<commit_msg>Update the README instructions to clarify the importance of pulling submodules (#1939)<commit_after># Firebase Android Open Source Development

This repository contains a subset of the Firebase Android SDK source. It
currently includes the following Firebase libraries, and some of their
dependencies:

  * `firebase-abt`
  * `firebase-common`
  * `firebase-common-ktx`
  * `firebase-crashlytics`
  * `firebase-crashlytics-ktx`
  * `firebase-crashlytics-ndk`
  * `firebase-database`
  * `firebase-database-ktx`
  * `firebase-database-collection`
  * `firebase-datatransport`
  * `firebase-firestore`
  * `firebase-firestore-ktx`
  * `firebase-functions`
  * `firebase-functions-ktx`
  * `firebase-inappmessaging`
  * `firebase-inappmessaging-ktx`
  * `firebase-inappmessaging-display`
  * `firebase-inappmessaging-display-ktx`
  * `firebase-remote-config`
  * `firebase-remote-config-ktx`
  * `firebase-storage`
  * `firebase-storage-ktx`


Firebase is an app development platform with tools to help you build, grow and
monetize your app. More information about Firebase can be found at
https://firebase.google.com.

## Table of contents

1. [Getting Started](#getting-started)
1. [Testing](#testing)
   1. [Unit Testing](#unit-testing)
   1. [Integration Testing](#integration-testing)
1. [Proguarding](#proguarding)
   1. [APIs used via reflection](#APIs-used-via-reflection)
   1. [APIs intended for developer
   consumption](#APIs-intended-for-developer-consumption)
   1. [APIs intended for other Firebase
   SDKs](#APIs-intended-for-other-firebase-sdks)
1. [Publishing](#publishing)
   1. [Dependencies](#dependencies)
   1. [Commands](#commands)
1. [Code Formatting](#code-formatting)
1. [Contributing](#contributing)

## Getting Started

* Install the latest Android Studio (should be 3.0.1 or later)
* Clone the repo (`git clone --recurse-submodules <EMAIL>:firebase/firebase-android-sdk.git`)
    * When cloning the repo, it is important to get the submodules as well. If
    you have already cloned the repo without the submodules, you can update the
    submodules by running `git submodule update --init --recursive`.
* Import the firebase-android-sdk gradle project into Android Studio using the
  **Import project(Gradle, Eclipse ADT, etc.)** option.

## Testing

Firebase Android libraries exercise all three types of tests recommended by the
[Android Testing Pyramid](https://developer.android.com/training/testing/fundamentals#testing-pyramid).
Depending on the requirements of the specific project, some or all of these
tests may be used to support changes.

> :warning: **Running tests with errorprone**
>
> To run with errorprone add `withErrorProne` to the command line, e.g.
>
> `./gradlew :<firebase-project>:check withErrorProne`.

### Unit Testing

These are tests that run on your machine's local Java Virtual Machine (JVM). At
{'fraction_non_alphanumeric': 0.11364902506963788, 'fraction_numerical': 0.006685236768802228, 'mean_word_length': 4.598752598752599, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 17, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3152241', 'n_tokens_mistral': 1774, 'n_tokens_neox': 1678, 'n_words': 500}