firebase / firebase/firebaseopensource.com
Firestore (Android)
- 主要言語
- TypeScript
- スター
- 127
- フォーク
- 49
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
**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:
- parsing data from snapshot: the library will cache and reuse as many objects as possible, plus use generated setters instead of reflection
- saving data to server: saves time and bandwidth by keeping track of dirty fields and uploading them, instead of the whole object.
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:
```kotlin
@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
}
```
コントリビューションガイド
調査の方向性
この issue には Firestore Android ライブラリのプロジェクト提出に関する説明がありますが、リポジトリのファイル、テスト、エントリーポイントのいずれも指定されていません。まず firebaseopensource.com にある既存のプロジェクト提出の処理を確認し、この内容を追加すべきか更新すべきかを判断してください。サイトで確立されている形式に従って提出内容が表現されていれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- firebase, kotlin
- 領域
- content, documentation
- issue の種類
- ドキュメント
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100