1
- <h1 align =" left " >Firebase Kotlin SDK <img alt =" GitHub last commit " src =" https://img.shields.io/github/last-commit/gitliveapp/firebase-kotlin-sdk?style=flat-square " > <a href =" https://git.live " ><img src =" https://img.shields.io/badge/GitLive-45_active_forks-blueviolet ?style=flat-square " ></a ></h1 >
1
+ <h1 align =" left " >Firebase Kotlin SDK <img alt =" GitHub last commit " src =" https://img.shields.io/github/last-commit/gitliveapp/firebase-kotlin-sdk?style=flat-square " > <a href =" https://git.live " ><img src =" https://img.shields.io/endpoint ?style=flatsquare&url=https%3A%2F%2Fgit.live%2Fbadge%3Forg%3DGitLiveApp%26repo%3Dfirebase-kotlin-sdk " ></a ></h1 >
2
2
<img align =" left " width =" 75px " src =" https://avatars2.githubusercontent.com/u/42865805?s=200&v=4 " >
3
3
<b >Built and maintained with 🧡 by <a href =" https://git.live " >GitLive</a ></b ><br />
4
4
<i >Development teams merge faster with GitLive</i ><br />
5
5
<br />
6
6
<br />
7
7
The Firebase Kotlin SDK is a Kotlin-first SDK for Firebase. It's API is similar to the
8
- <a href =" https://firebase.github.io/firebase-android-sdk /reference/kotlin/firebase-ktx/ " >Firebase Android SDK Kotlin Extensions</a >
8
+ <a href =" https://firebase.google.com/docs /reference/kotlin/packages " >Firebase Android SDK Kotlin Extensions</a >
9
9
but also supports multiplatform projects, enabling you to use Firebase directly from your common source targeting
10
10
<strong >iOS</strong >, <strong >Android</strong >, <strong >Desktop</strong > or <strong >Web</strong >, enabling the use of
11
11
Firebase as a backend for <a href =" https://www.jetbrains.com/lp/compose-multiplatform/ " >Compose Multiplatform</a >, for example.
@@ -16,17 +16,17 @@ The following libraries are available for the various Firebase products.
16
16
17
17
| Service or Product | Gradle Dependency | API Coverage |
18
18
| ---------------------------------------------------------------------------------| :-------------------------------------------------------------------------------------------------------------------------------| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
19
- | [ Analytics] ( https://firebase.google.com/docs/analytics ) | [ ` dev.gitlive:firebase-analytics:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-analytics/2.1 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-auth/src/commonMain/kotlin/dev/gitlive/firebase/auth/auth.kt ) |
20
- | [ Authentication] ( https://firebase.google.com/docs/auth ) | [ ` dev.gitlive:firebase-auth:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-auth/2.1 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-auth/src/commonMain/kotlin/dev/gitlive/firebase/auth/auth.kt ) |
21
- | [ Realtime Database] ( https://firebase.google.com/docs/database ) | [ ` dev.gitlive:firebase-database:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-database/2.1 .0/pom ) | [ ![ 70%] ( https://img.shields.io/badge/-70%25-orange?style=flat-square )] ( /firebase-database/src/commonMain/kotlin/dev/gitlive/firebase/database/database.kt ) |
22
- | [ Cloud Firestore] ( https://firebase.google.com/docs/firestore ) | [ ` dev.gitlive:firebase-firestore:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-firestore/2.1 .0/pom ) | [ ![ 60%] ( https://img.shields.io/badge/-60%25-orange?style=flat-square )] ( /firebase-firestore/src/commonMain/kotlin/dev/gitlive/firebase/firestore/firestore.kt ) |
23
- | [ Cloud Functions] ( https://firebase.google.com/docs/functions ) | [ ` dev.gitlive:firebase-functions:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-functions/2.1 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-functions/src/commonMain/kotlin/dev/gitlive/firebase/functions/functions.kt ) |
24
- | [ Cloud Messaging] ( https://firebase.google.com/docs/cloud-messaging ) | [ ` dev.gitlive:firebase-messaging:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-messaging/2.1 .0/pom ) | [ ![ 1%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-messaging/src/commonMain/kotlin/dev/gitlive/firebase/messaging/messaging.kt ) |
25
- | [ Cloud Storage] ( https://firebase.google.com/docs/storage ) | [ ` dev.gitlive:firebase-storage:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-storage/2.1 .0/pom ) | [ ![ 40%] ( https://img.shields.io/badge/-40%25-orange?style=flat-square )] ( /firebase-storage/src/commonMain/kotlin/dev/gitlive/firebase/storage/storage.kt ) |
26
- | [ Installations] ( https://firebase.google.com/docs/projects/manage-installations ) | [ ` dev.gitlive:firebase-installations:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-installations/2.1 .0/pom ) | [ ![ 90%] ( https://img.shields.io/badge/-90%25-green?style=flat-square )] ( /firebase-installations/src/commonMain/kotlin/dev/gitlive/firebase/installations/installations.kt ) |
27
- | [ Remote Config] ( https://firebase.google.com/docs/remote-config ) | [ ` dev.gitlive:firebase-config:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-config/2.1 .0/pom ) | [ ![ 20%] ( https://img.shields.io/badge/-20%25-orange?style=flat-square )] ( /firebase-config/src/commonMain/kotlin/dev/gitlive/firebase/remoteconfig/FirebaseRemoteConfig.kt ) |
28
- | [ Performance] ( https://firebase.google.com/docs/perf-mon ) | [ ` dev.gitlive:firebase-perf:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-perf/2.1 .0/pom ) | [ ![ 1%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-perf/src/commonMain/kotlin/dev/gitlive/firebase/perf/performance.kt ) |
29
- | [ Crashlytics] ( https://firebase.google.com/docs/crashlytics ) | [ ` dev.gitlive:firebase-crashlytics:2.1 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-crashlytics/2.1 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-crashlytics/src/commonMain/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt ) |
19
+ | [ Analytics] ( https://firebase.google.com/docs/analytics ) | [ ` dev.gitlive:firebase-analytics:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-analytics/2.3 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-auth/src/commonMain/kotlin/dev/gitlive/firebase/auth/auth.kt ) |
20
+ | [ Authentication] ( https://firebase.google.com/docs/auth ) | [ ` dev.gitlive:firebase-auth:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-auth/2.3 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-auth/src/commonMain/kotlin/dev/gitlive/firebase/auth/auth.kt ) |
21
+ | [ Realtime Database] ( https://firebase.google.com/docs/database ) | [ ` dev.gitlive:firebase-database:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-database/2.3 .0/pom ) | [ ![ 70%] ( https://img.shields.io/badge/-70%25-orange?style=flat-square )] ( /firebase-database/src/commonMain/kotlin/dev/gitlive/firebase/database/database.kt ) |
22
+ | [ Cloud Firestore] ( https://firebase.google.com/docs/firestore ) | [ ` dev.gitlive:firebase-firestore:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-firestore/2.3 .0/pom ) | [ ![ 60%] ( https://img.shields.io/badge/-60%25-orange?style=flat-square )] ( /firebase-firestore/src/commonMain/kotlin/dev/gitlive/firebase/firestore/firestore.kt ) |
23
+ | [ Cloud Functions] ( https://firebase.google.com/docs/functions ) | [ ` dev.gitlive:firebase-functions:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-functions/2.3 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-80%25-green?style=flat-square )] ( /firebase-functions/src/commonMain/kotlin/dev/gitlive/firebase/functions/functions.kt ) |
24
+ | [ Cloud Messaging] ( https://firebase.google.com/docs/cloud-messaging ) | [ ` dev.gitlive:firebase-messaging:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-messaging/2.3 .0/pom ) | [ ![ 1%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-messaging/src/commonMain/kotlin/dev/gitlive/firebase/messaging/messaging.kt ) |
25
+ | [ Cloud Storage] ( https://firebase.google.com/docs/storage ) | [ ` dev.gitlive:firebase-storage:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-storage/2.3 .0/pom ) | [ ![ 40%] ( https://img.shields.io/badge/-40%25-orange?style=flat-square )] ( /firebase-storage/src/commonMain/kotlin/dev/gitlive/firebase/storage/storage.kt ) |
26
+ | [ Installations] ( https://firebase.google.com/docs/projects/manage-installations ) | [ ` dev.gitlive:firebase-installations:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-installations/2.3 .0/pom ) | [ ![ 90%] ( https://img.shields.io/badge/-90%25-green?style=flat-square )] ( /firebase-installations/src/commonMain/kotlin/dev/gitlive/firebase/installations/installations.kt ) |
27
+ | [ Remote Config] ( https://firebase.google.com/docs/remote-config ) | [ ` dev.gitlive:firebase-config:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-config/2.3 .0/pom ) | [ ![ 20%] ( https://img.shields.io/badge/-20%25-orange?style=flat-square )] ( /firebase-config/src/commonMain/kotlin/dev/gitlive/firebase/remoteconfig/FirebaseRemoteConfig.kt ) |
28
+ | [ Performance] ( https://firebase.google.com/docs/perf-mon ) | [ ` dev.gitlive:firebase-perf:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-perf/2.3 .0/pom ) | [ ![ 1%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-perf/src/commonMain/kotlin/dev/gitlive/firebase/perf/performance.kt ) |
29
+ | [ Crashlytics] ( https://firebase.google.com/docs/crashlytics ) | [ ` dev.gitlive:firebase-crashlytics:2.3 .0 ` ] ( https://search.maven.org/artifact/dev.gitlive/firebase-crashlytics/2.3 .0/pom ) | [ ![ 80%] ( https://img.shields.io/badge/-10%25-orange?style=flat-square )] ( /firebase-crashlytics/src/commonMain/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt ) |
30
30
31
31
Is the Firebase library or API you need missing? [ Create an issue] ( https://github.com/GitLiveApp/firebase-kotlin-sdk/issues/new?labels=API+coverage&template=increase-api-coverage.md&title=Add+%5Bclass+name%5D.%5Bfunction+name%5D+to+%5Blibrary+name%5D+for+%5Bplatform+names%5D ) to request additional API coverage or be awesome and [ submit a PR] ( https://github.com/GitLiveApp/firebase-kotlin-sdk/fork )
32
32
@@ -440,3 +440,5 @@ More recently, with the official SDK for Android providing better support for Ko
440
440
For contributors this means following these points when adding new code to the public API of this project:
441
441
- ** Match the [ Android SDKs API] ( https://firebase.google.com/docs/reference/kotlin/packages ) .** When adding new API coverage use the Android SDK as the guide on what the public API should be in regard to naming, parameters etc. The goal here is * near binary compatibility* , meaning code consuming the Android SDK compiles * as is* with the Kotlin SDK after just changing the package imports from ` com.google ` to ` dev.gitlive ` .
442
442
- ** Follow our [ Kotlin-first design] ( https://github.com/GitLiveApp/firebase-kotlin-sdk/?tab=readme-ov-file#kotlin-first-design ) principles when needed.** If the API you are adding coverage for is new, and it's Kotlin-first in the Android SDK, then you can simply just match the Android SDKs API as described in the first point, but if it's an older Java-first API then ideally we would include an identical API for API compatibility * plus* a Kotlin-first overload. A good example for this is where the Builder pattern is employed in the Android SDK, here we can follow [ this Kotlin-first design principle] ( https://github.com/GitLiveApp/firebase-kotlin-sdk/?tab=readme-ov-file#default-arguments ) and provide both methods, one taking the options created with the builder and an overload with default arguments to avoid the builder boilerplate for developers not porting an existing android code base.
443
+
444
+ And finally, please remember that this is an open source project, all the project maintainers are ** volunteers** , they are ** not paid to maintain** this project, and they have ** their own jobs** , so please be ** patient** when waiting for a response to your issue or PR. Any form of abuse or harassment will not be tolerated and will result in being reported to GitHub.
0 commit comments