Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ More information about Firebase can be found at https://firebase.google.com.
## Table of contents

1. [Getting Started](#getting-started)
1. [Testing](#testing)
2. [Testing](#testing)
1. [Unit Testing](#unit-testing)
1. [Integration Testing](#integration-testing)
1. [Proguarding](#proguarding)
2. [Integration Testing](#integration-testing)
3. [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)
2. [APIs intended for developer consumption](#APIs-intended-for-developer-consumption)
3. [APIs intended for other Firebase SDKs](#APIs-intended-for-other-firebase-sdks)
4. [Publishing](#publishing)
1. [Dependencies](#dependencies)
1. [Commands](#commands)
1. [Code Formatting](#code-formatting)
1. [Contributing](#contributing)
2. [Commands](#commands)
5. [Code Formatting](#code-formatting)
6. [Contributing](#contributing)

## Getting Started

Expand Down
69 changes: 32 additions & 37 deletions agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,43 +28,36 @@ This file is useful for understanding the role of each subproject in the reposit
To work with this repository, the Android SDK must be installed. Use the `sdkmanager` command-line
tool for this purpose.

1. **Install Android SDK Command-Line Tools**:

- If not already installed, download the command-line tools from the
[Android Studio page](https://developer.android.com/studio#command-line-tools-only).
- Create a directory for the Android SDK, e.g., `android_sdk`.
- Unzip the downloaded package. This will create a `cmdline-tools` directory. Move this
directory to `android_sdk/cmdline-tools/latest`.
- The final structure should be `android_sdk/cmdline-tools/latest/`.

2. **Install required SDK packages**:

- Use `sdkmanager` to install the necessary platforms, build tools, and other packages. For
example:

```bash
# List all available packages
sdkmanager --list

# Install platform tools and the SDK for API level 33
sdkmanager "platform-tools" "platforms;android-33"

# Accept all licenses
yes | sdkmanager --licenses
```

- Refer to the specific requirements of the project to determine which packages to install.

3. **Configure for integration tests**:

- To run integration tests, a `google-services.json` file is required.
- Place this file in the root of the repository.

4. **Install NDK for specific projects**:
- Some projects, like `firebase-crashlytics-ndk`, require a specific version of the Android NDK.
You can install it using `sdkmanager`. For example, to install NDK version 21.4.7075529, you
would run `sdkmanager "ndk;21.4.7075529"`. Always refer to the project's `README.md` for the
exact version required.
1. **Install Android SDK Command-Line Tools**:
- If not already installed, download the command-line tools from the
[Android Studio page](https://developer.android.com/studio#command-line-tools-only).
- Create a directory for the Android SDK, e.g., `android_sdk`.
- Unzip the downloaded package. This will create a `cmdline-tools` directory. Move this
directory to `android_sdk/cmdline-tools/latest`.
- The final structure should be `android_sdk/cmdline-tools/latest/`.
2. **Install required SDK packages**:
- Use `sdkmanager` to install the necessary platforms, build tools, and other packages. For
example:

```bash
# List all available packages
sdkmanager --list

# Install platform tools and the SDK for API level 33
sdkmanager "platform-tools" "platforms;android-33"

# Accept all licenses
yes | sdkmanager --licenses
```
- Refer to the specific requirements of the project to determine which packages to install.
3. **Configure for integration tests**:
- To run integration tests, a `google-services.json` file is required.
- Place this file in the root of the repository.
4. **Install NDK for specific projects**:
- Some projects, like `firebase-crashlytics-ndk`, require a specific version of the Android NDK.
You can install it using `sdkmanager`. For example, to install NDK version 21.4.7075529, you
would run `sdkmanager "ndk;21.4.7075529"`. Always refer to the project's `README.md` for the
exact version required.

## Building and Running

Expand Down Expand Up @@ -182,10 +175,12 @@ started.
After you make a change, here's the flow you should follow:

- Format the code using `spotless`. It can be run with:

```bash
./gradlew :<firebase-project>:spotlessApply
```
- Run unit tests:

```bash
./gradlew :<firebase-project>:check
```
Expand Down
1 change: 1 addition & 0 deletions appcheck/firebase-appcheck-debug-testing/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,4 @@
# 16.0.0-beta01

- [feature] Initial beta release of the [app_check] Debug Testing SDK with abuse reduction features.

1 change: 1 addition & 0 deletions appcheck/firebase-appcheck-debug/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,4 @@
# 16.0.0-beta01

- [feature] Initial beta release of the [app_check] Debug SDK with abuse reduction features.

1 change: 1 addition & 0 deletions appcheck/firebase-appcheck-interop/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions appcheck/firebase-appcheck-playintegrity/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,4 @@

- [feature] Added support for [Play Integrity](https://developer.android.com/google/play/integrity)
as an attestation provider.

1 change: 1 addition & 0 deletions appcheck/firebase-appcheck/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,4 @@ Kotlin extensions library has the following additional updates:
# 16.0.0-beta01

- [feature] Initial beta release of the [app_check] SDK with abuse reduction features.

4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ fun Project.applySpotless() {
target("*.gradle.kts") // default target for kotlinGradle
ktfmt("0.41").googleStyle()
}
format("styling") {
flexmark {
target("src/**/*.md", "*.md", "docs/**/*.md")
targetExclude("**/third_party/**", "src/test/resources/**", "release_report.md")
prettier().config(mapOf("printWidth" to 100, "proseWrap" to "always"))
flexmark("0.64.8")
}
}
}
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ idiomatic Kotlin code when using Firebase in your app:

[android-setup]: https://firebase.google.com/docs/android/setup
[main-readme]: https://github.com/firebase/firebase-android-sdk/blob/main/README.md

1 change: 1 addition & 0 deletions encoders/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,4 @@ dependencies {
kapt project(":encoders:firebase-encoders-processor")
}
```

1 change: 1 addition & 0 deletions encoders/firebase-decoders-json/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions encoders/firebase-encoders-json/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions encoders/firebase-encoders-processor/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions encoders/firebase-encoders-proto/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

- [changed] Updated protobuf dependency to `3.25.5` to fix
[CVE-2024-7254](https://nvd.nist.gov/vuln/detail/CVE-2024-7254).

1 change: 1 addition & 0 deletions encoders/firebase-encoders-reflective/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions encoders/firebase-encoders/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions encoders/protoc-gen-firebase-encoders/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions firebase-abt/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,4 @@
# 17.1.0

- [changed] Updated API to support the latest [remote_config] update.

1 change: 1 addition & 0 deletions firebase-annotations/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Unreleased

- [changed] Hid Executors from public API, as they are intended to be internal anyhow.

1 change: 0 additions & 1 deletion firebase-appdistribution-api/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ library. The Kotlin extensions library has no additional updates.
# 16.0.0-beta03

- [feature] The [appdistro] SDK has been split into two libraries:

- `firebase-appdistribution-api` - The API-only library<br> This new API-only library is
functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is
present. `firebase-appdistribution-api` can be included in all
Expand Down
1 change: 0 additions & 1 deletion firebase-appdistribution/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
# 16.0.0-beta03

- [feature] The [appdistro] SDK has been split into two libraries:

- `firebase-appdistribution-api` - The API-only library<br> This new API-only library is
functional only when the full [appdistro] SDK implementation (`firebase-appdistribution`) is
present. `firebase-appdistribution-api` can be included in all
Expand Down
1 change: 1 addition & 0 deletions firebase-common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ Integration tests are run by
```
$ ./gradlew :firebase-common:connectedCheck
```

1 change: 1 addition & 0 deletions firebase-components/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ Kotlin extensions library has no additional updates.
- [changed] Internal changes to ensure only one interface is provided for
kotlinx.coroutines.CoroutineDispatcher interfaces when both firebase-common and
firebase-common-ktx provide them.

Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
# 16.0.0-beta03

- [changed] Updated dependency of play-services-basement to its latest version (v18.1.0).

1 change: 1 addition & 0 deletions firebase-config-interop/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
# 16.0.0

- [feature] Initial release.

3 changes: 2 additions & 1 deletion firebase-config/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ Kotlin extensions library has no additional updates.

- [fixed] Fixed a bug that caused HTTP errors in some locales. For more information, see
<a href="https://github.com/firebase/firebase-android-sdk/issues/3757"
class="external">GitHub Issue #3757</a>
class="external">GitHub Issue #3757</a>

## Kotlin

Expand Down Expand Up @@ -535,3 +535,4 @@ Kotlin extensions library has no additional updates.
# 16.1.0

- [fixed] Bug fixes and internal improvements to support Firebase Performance Monitoring features.

1 change: 1 addition & 0 deletions firebase-crashlytics-ndk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,3 +319,4 @@ the new SDK.
[crashlytics] servers. See the
[[crashlytics] Gradle plugin documentation](/docs/crashlytics/ndk-reports-new-sdk) for more
information.

1 change: 1 addition & 0 deletions firebase-crashlytics/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -696,3 +696,4 @@ name change. The following release notes describe changes in the new SDK.
app from Fabric, remove the Fabric API key from your `AndroidManifest.xml` file.
- [removed] The `fabric.properties` and `crashlytics.properties` files are no longer supported.
Remove them from your app.

1 change: 1 addition & 0 deletions firebase-database-collection/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Unreleased

1 change: 1 addition & 0 deletions firebase-database/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,3 +312,4 @@ Kotlin extensions library has no additional updates.
# 16.0.1

- [changed] Added `Nullability` annotations to all public API classes/methods.

1 change: 1 addition & 0 deletions firebase-dataconnect/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,4 @@
([#6299](https://github.com/firebase/firebase-android-sdk/pull/6299))
- [changed] Added `equals` and `hashCode` methods to `GeneratedConnector`.
([#6177](https://github.com/firebase/firebase-android-sdk/pull/6177))

4 changes: 4 additions & 0 deletions firebase-dataconnect/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,17 @@ The integration tests require that the Firebase Data Connect emulator is running
is default when running it via the Firebase CLI.

- [Install the Firebase CLI](https://firebase.google.com/docs/cli/).

```
npm install -g firebase-tools
```
- [Install the Firebase Data Connect emulator](https://firebase.google.com/docs/FIX_URL/security/test-rules-emulator#install_the_emulator).

```
firebase setup:emulators:dataconnect
```
- Run the emulator

```
firebase emulators:start --only dataconnect
```
Expand Down Expand Up @@ -110,3 +113,4 @@ changes with the command:
```
$ git checkout .idea/runConfigurations
```

1 change: 1 addition & 0 deletions firebase-datatransport/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@
# 18.2.0

- [feature] Expose the transport factory as a qualified dependency based on the endpoint connected.

2 changes: 1 addition & 1 deletion firebase-firestore/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
[#7388](//github.com/firebase/firebase-android-sdk/pull/7388)
- [changed] Improve query performance by using an unsorted HashMap instead of a sorted TreeMap.
[#7389](//github.com/firebase/firebase-android-sdk/pull/7389)

* [changed] Add `java.time.Instant` support to `DocumentSnapshot.toObject()`,
`DocumentReference.set()`, `DocumentReference.update()`, and similar.
[#6235](//github.com/firebase/firebase-android-sdk/pull/6235)
Expand Down Expand Up @@ -1010,3 +1009,4 @@ Kotlin extensions library has no additional updates.
or
[`FieldValue.serverTimestamp()`](</docs/reference/android/com/google/firebase/firestore/FieldValue.html#serverTimestamp()>)
values.

25 changes: 15 additions & 10 deletions firebase-firestore/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,17 @@ The integration tests require that the Firestore emulator is running on port 808
when running it via CLI.

- [Install the Firebase CLI](https://firebase.google.com/docs/cli/).

```
npm install -g firebase-tools
```
- [Install the Firestore emulator](https://firebase.google.com/docs/firestore/security/test-rules-emulator#install_the_emulator).

```
firebase setup:emulators:firestore
```
- Run the emulator

```
firebase emulators:start --only firestore
```
Expand Down Expand Up @@ -200,16 +203,17 @@ android.util.Log.i("FirestoreVersion", com.google.firebase.firestore.BuildConfig
If your changes require building other modules in this repository (like `firebase-common`), you must
build and publish them locally as well.

1. In the dependency's directory (e.g., `firebase-common/`), edit `gradle.properties` to set a
unique version.
2. Publish the dependency to Maven Local:
```bash
./gradlew :firebase-common:publishToMavenLocal
```
3. In `firebase-firestore/firebase-firestore.gradle`, ensure the dependency is a project
dependency. For example, change `api(libs.firebase.common)` to
`api(project(":firebase-common"))`.
4. Build and publish the `firebase-firestore` artifact as described in step 2.
1. In the dependency's directory (e.g., `firebase-common/`), edit `gradle.properties` to set a
unique version.
2. Publish the dependency to Maven Local:

```bash
./gradlew :firebase-common:publishToMavenLocal
```
3. In `firebase-firestore/firebase-firestore.gradle`, ensure the dependency is a project
dependency. For example, change `api(libs.firebase.common)` to
`api(project(":firebase-common"))`.
4. Build and publish the `firebase-firestore` artifact as described in step 2.

## Misc

Expand All @@ -220,3 +224,4 @@ changes with the command:
```
$ git checkout .idea/runConfigurations
```

1 change: 1 addition & 0 deletions firebase-functions/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -263,3 +263,4 @@ Kotlin extensions library has no additional updates.
the default "us-central1".
- [feature] New `useFunctionsEmulator` method allows testing against a local instance of the
[Cloud Functions Emulator](https://firebase.google.com/docs/functions/local-emulator).

1 change: 1 addition & 0 deletions firebase-functions/src/androidTest/backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ firebase use $PROJECT_ID
echo $(cd functions && npm install)
firebase deploy --only functions
```

1 change: 1 addition & 0 deletions firebase-inappmessaging-display/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -376,3 +376,4 @@ library. The Kotlin extensions library has no additional updates.
- [feature] The initial public beta release of the Firebase In-App Messaging Display SDK for Android
is now available. To learn more, see the
[Firebase In-App Messaging documentation](/docs/in-app-messaging).

1 change: 1 addition & 0 deletions firebase-inappmessaging/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -374,3 +374,4 @@ The Kotlin extensions library has no additional updates.
- [feature] The initial public beta release of the Firebase In-App Messaging SDK for Android is now
available. To learn more, see the
[Firebase In-App Messaging documentation](/docs/in-app-messaging).

1 change: 1 addition & 0 deletions firebase-installations-interop/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Unreleased

- [changed] Release to align with ktx changes

Loading
Loading