firebase / firebaseopensource.com

Source for firebase open source site
https://firebaseopensource.com
Apache License 2.0
118 stars 41 forks source link

Firestore (Android) #162

Open natario1 opened 4 years ago

natario1 commented 4 years ago

Link to project (GitHub): https://github.com/natario1/Firestore

Describe the project in 2-3 sentences: A lightweight, efficient library to manage Firestore model data as reactive, observable objects that adapt to your Firestore schema and provide type safety and efficiency. Written in Kotlin, with built-in data-binding and Parcelable support.

Why would Firebase developers be interested in this project?: The library is a needed companion to the official Firestore SDK. It uses annotation processing to generate type-safe, null-safe, efficient (no reflection) objects around your Firestore model. It leverages Kotlin syntax, so declaring a property is as simple as var name: String by this.

Controlling the model class lets the engine do many things much more efficiently, for example:

In addition, each model class automatically offers a @Parcelable implementation and it works with Android's databinding out of the box, by simply declaring fields as bindable:

@FirestoreClass
class Message : FirestoreDocument() {
    // You can use {message.text} and {message.comment} in XML layouts
    // and they will be updated automatically when the model changes.
    @get:Bindable var text: String by this
    @get:Bindable var author: String by this
}
samtstern commented 4 years ago

@natario1 looks great! Happy to add this to the site. Just add an .opensource/project.json file to your project, I suggest looking at other firebasopensource projects for examples.

Also when making that file try to pick a more descriptive name than 'Firestore' so that Firebase developers can tell your library apart from otherrs.