Firebaseの機能一覧

## はじめに

Firebaseの機能を私が調べた範囲で紹介します。

Googleはドキュメントが充実しているため、本記事と並行して公式の一次ソースを確認することをオススメします。

## 注意

2020/10/02現在でベータ版の機能は紹介していません。

## Cloud Firestore

NoSQLのDB
https://firebase.google.com/products/firestore?hl=ja

### 使いどころ

- サーバーレスでNoSQLのDBを使いたいとき

### 実装例

#### iOSアプリ (Swift)

- [UhooiPicBook/MonstersRepository.swift at master · uhooi/UhooiPicBook](https://github.com/uhooi/UhooiPicBook/blob/master/UhooiPicBook/Repository/Monsters/MonstersRepository.swift)

#### Androidアプリ (Kotlin)

- [UhooiPicBook-Android/MonstersFirestoreClient.kt at master · uhooi/UhooiPicBook-Android](https://github.com/uhooi/UhooiPicBook-Android/blob/master/app/src/main/java/com/theuhooi/uhooipicbook/repository/monsters/firebase/MonstersFirestoreClient.kt)
- [UhooiPicBook-Android/MonsterItem.kt at master · uhooi/UhooiPicBook-Android](https://github.com/uhooi/UhooiPicBook-Android/blob/master/app/src/main/java/com/theuhooi/uhooipicbook/modules/monsterlist/entities/MonsterItem.kt)

#### セキュリティルールのテストコード (TypeScript)

- [uhooi/UhooiPicBook-Firebase: Uhooi's character book.](https://github.com/uhooi/UhooiPicBook-Firebase)

## Cloud Functions

サーバーレスでバックエンドのコード実行
https://firebase.google.com/products/functions?hl=ja

### 使いどころ

- Firestore単体で完結しない処理の実行

### 実装例

なし

## Authentication

認証システム
https://firebase.google.com/products/auth?hl=ja

### 使いどころ

- ログイン機能の実装

### 実装例

なし

## Hosting

Webホスティング
https://firebase.google.com/products/hosting?hl=ja

### 使いどころ

- LPの実装
- PWAの実装

### 実装例

なし

## Cloud Storage

クラウドの外部ストレージ
https://firebase.google.com/products/storage?hl=ja

### 使いどころ

- 画像や動画の保存・提供

### 実装例

私はコンテンツの配信専用に使っていて、URLをFirestoreに入れている

## Realtime Database

NoSQLのDB
https://firebase.google.com/products/realtime-database?hl=ja

### 使いどころ

- 基本的にはFirestoreを使う
  - 違いは以下の公式ドキュメントを参照  
  https://firebase.google.com/docs/database/rtdb-vs-firestore

### 実装例

なし

## Crashlytics

クラッシュレポート
https://firebase.google.com/products/crashlytics?hl=ja

### 使いどころ

どのようなアプリにも導入すべきだと考える

- クラッシュの原因追求

### 実装例

公式ドキュメントに沿うのがいい

## Performance Monitoring

パフォーマンス計測
https://firebase.google.com/products/performance?hl=ja

### 使いどころ

どのようなアプリにも導入すべきだと考える

- パフォーマンスのボトルネックの調査

### 実装例

公式ドキュメントに沿うのがいい

## Test Lab

デバイスファーム（だと思う）
https://firebase.google.com/products/test-lab?hl=ja

### 使いどころ

- 実機を使ったUIテスト
- モンキーテスト

### 実装例

なし

## Google Analytics

ユーザー分析
https://firebase.google.com/products/analytics?hl=ja

### 使いどころ

どのようなアプリにも導入すべきだと考える

- ユーザー分析

### 実装例

公式ドキュメントに沿うのがいい

## Predictions

使ったことがないのでわからない
https://firebase.google.com/products/predictions?hl=ja

### 使いどころ

使ったことがないのでわからない

### 実装例

なし

## Cloud Messaging

「FCM」と略す
リモートプッシュ通知
https://firebase.google.com/products/cloud-messaging?hl=ja

### 使いどころ

- リモートプッシュ通知の送付

### 実装例

#### iOSアプリ (Swift)

- [Implement the foundation for remote push notifications by uhooi · Pull Request #88 · uhooi/UhooiPicBook](https://github.com/uhooi/UhooiPicBook/pull/88)

#### Androidアプリ (Kotlin)

- [Implement the foundation for remote push notifications by uhooi · Pull Request #57 · uhooi/UhooiPicBook-Android](https://github.com/uhooi/UhooiPicBook-Android/pull/57)

## Remote Config

リモートでアプリの設定を変更
https://firebase.google.com/products/remote-config?hl=ja

### 使いどころ

- 期間限定でテーマの変更
- A/Bテスト

### 実装例

なし

## Dynamic Links

ディープリンク
https://firebase.google.com/products/dynamic-links?hl=ja

### 使いどころ

- インストール済みならアプリ起動、未インストールならストアに遷移させるリンクの生成

### 実装例

なし

## おわりに

以上、Firebaseの機能一覧の一言紹介でした。

## 参考リンク

- [Firebase](https://firebase.google.com/?hl=ja)
- [Firebase Pricing](https://firebase.google.com/pricing?hl=ja)