Suche senden
Hochladen
Firebaseの新しいデータベース
•
5 gefällt mir
•
1,847 views
Hironytic
Folgen
DevFest Shikoku 2017でLTしたスライドです
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介
Toshiaki Enami
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について
Yasuhiro Matsuo
20211209 lt runtime_field
20211209 lt runtime_field
Nomura Yuta
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battle
Mitsuki Kenichi
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
Apache Arrow
Apache Arrow
Kouhei Sutou
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Empfohlen
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介
Toshiaki Enami
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
gree_tech
研究用途でのAWSの利用事例と機械学習について
研究用途でのAWSの利用事例と機械学習について
Yasuhiro Matsuo
20211209 lt runtime_field
20211209 lt runtime_field
Nomura Yuta
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battle
Mitsuki Kenichi
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
Apache Arrow
Apache Arrow
Kouhei Sutou
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
Apache Arrow
Apache Arrow
Kouhei Sutou
ビズリーチの新サービスとMackerel
ビズリーチの新サービスとMackerel
Kimiya Sato
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Masaru Watanabe
Architecting on Alibaba Cloud - Fundamentals - 2018
Architecting on Alibaba Cloud - Fundamentals - 2018
真吾 吉田
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
cyberagent
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
Taro L. Saito
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
Kohei KaiGai
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Kouhei Sutou
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
Apache Arrow 2019
Apache Arrow 2019
Kouhei Sutou
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
Kouhei Sutou
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Kouhei Sutou
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Daisuke Miyamoto
HPC on AWS 2020 Summer
HPC on AWS 2020 Summer
Daisuke Miyamoto
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについて
Satoshi Akama
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
griddb
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
Yasuhiro Araki, Ph.D
Weitere ähnliche Inhalte
Was ist angesagt?
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
Apache Arrow
Apache Arrow
Kouhei Sutou
ビズリーチの新サービスとMackerel
ビズリーチの新サービスとMackerel
Kimiya Sato
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Masaru Watanabe
Architecting on Alibaba Cloud - Fundamentals - 2018
Architecting on Alibaba Cloud - Fundamentals - 2018
真吾 吉田
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
cyberagent
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
Taro L. Saito
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
Kohei KaiGai
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Kouhei Sutou
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
Apache Arrow 2019
Apache Arrow 2019
Kouhei Sutou
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
Kouhei Sutou
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Kouhei Sutou
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Daisuke Miyamoto
HPC on AWS 2020 Summer
HPC on AWS 2020 Summer
Daisuke Miyamoto
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについて
Satoshi Akama
Was ist angesagt?
(20)
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
Apache Arrow
Apache Arrow
ビズリーチの新サービスとMackerel
ビズリーチの新サービスとMackerel
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Architecting on Alibaba Cloud - Fundamentals - 2018
Architecting on Alibaba Cloud - Fundamentals - 2018
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
Treasure Dataを支える技術 - MessagePack編
Treasure Dataを支える技術 - MessagePack編
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Apache Arrow 2019
Apache Arrow 2019
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
HPC on AWS 2020 Summer
HPC on AWS 2020 Summer
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについて
Ähnlich wie Firebaseの新しいデータベース
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
griddb
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
Yasuhiro Araki, Ph.D
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視
Kodai Terashima
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation
真吾 吉田
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い
真吾 吉田
現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)
真吾 吉田
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Fujishiro Takuya
TripleOの光と闇
TripleOの光と闇
Manabu Ori
AWS SDK for Smalltalk
AWS SDK for Smalltalk
Sho Yoshida
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
Shunsuke Kurumatani
AngularFireで楽々バックエンド
AngularFireで楽々バックエンド
Yosuke Onoue
AWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS Lambda
Amazon Web Services Japan
Stream processing and Norikra
Stream processing and Norikra
SATOSHI TAGOMORI
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
Kensuke Maeda
Open Source x AI
Open Source x AI
Tsukasa Kato
Osc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
ru pic
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
Infrastructure as code for azure
Infrastructure as code for azure
Keiji Kamebuchi
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Shigeru UCHIYAMA
Ähnlich wie Firebaseの新しいデータベース
(20)
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
Jaws−横浜ハンズオンーCloudFormation w/ VPC 3/3
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
ZabbixによるOpenStack/OpenContrailの監視
ZabbixによるOpenStack/OpenContrailの監視
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い
現場的!AWSとオンプレの違い(赤べこバージョン)
現場的!AWSとオンプレの違い(赤べこバージョン)
Hbstudy41 auto scaling
Hbstudy41 auto scaling
TripleOの光と闇
TripleOの光と闇
AWS SDK for Smalltalk
AWS SDK for Smalltalk
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
AngularFireで楽々バックエンド
AngularFireで楽々バックエンド
AWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS Lambda
Stream processing and Norikra
Stream processing and Norikra
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
Open Source x AI
Open Source x AI
Osc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
Infrastructure as code for azure
Infrastructure as code for azure
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
Mehr von Hironytic
DroidKaigi 2018報告会(公式アプリへのコントリビュート)
DroidKaigi 2018報告会(公式アプリへのコントリビュート)
Hironytic
DroidKaigi 2018報告会(はじめてのKotlinハンズオン)
DroidKaigi 2018報告会(はじめてのKotlinハンズオン)
Hironytic
DroidKaigi 2018報告会(会場の風景)
DroidKaigi 2018報告会(会場の風景)
Hironytic
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
Hironytic
RxSwiftをバインディングツールとして使ってみる
RxSwiftをバインディングツールとして使ってみる
Hironytic
CocoaPodsのはなし
CocoaPodsのはなし
Hironytic
Heroku+MongoLabでダミーサーバー
Heroku+MongoLabでダミーサーバー
Hironytic
Mehr von Hironytic
(7)
DroidKaigi 2018報告会(公式アプリへのコントリビュート)
DroidKaigi 2018報告会(公式アプリへのコントリビュート)
DroidKaigi 2018報告会(はじめてのKotlinハンズオン)
DroidKaigi 2018報告会(はじめてのKotlinハンズオン)
DroidKaigi 2018報告会(会場の風景)
DroidKaigi 2018報告会(会場の風景)
RxSwiftのデータバインディングだけ
RxSwiftのデータバインディングだけ
RxSwiftをバインディングツールとして使ってみる
RxSwiftをバインディングツールとして使ってみる
CocoaPodsのはなし
CocoaPodsのはなし
Heroku+MongoLabでダミーサーバー
Heroku+MongoLabでダミーサーバー
Firebaseの新しいデータベース
1.
Firebaseの 新しいデータベース 2017/11/18 DevFest Shikoku 2017
2.
About Me • Twitter、GitHub、Qiita、 SlideShare、Speaker
Deck: ➡ hironytic • At work: ➡ iOS (Objective-C)、 ときどき Android (Java)、 Windows UWP(C#) • At home: ➡ iOS (Swift) ひろん (一宮 浩教)
3.
Firebase •Remote Config •App Indexing •Dynamic
Links •Invites •AdWords •AdMob •Analytics Develop Grow Earn •Cloud Messaging •Authentication •Realtime Database •Cloud Firestore (beta) •Storage •Hosting •Test Lab •Crash Reporting Oct.4, 2017
4.
機能の比較 • リアルタイム • オフライン •
サーバーレス • 複数DBプラン有り • 柔軟なデータ構造 • 表現力の高いクエリ • スケール可能な設計 RTDB CFS RTDB CFS = Realtime Database = Cloud Firestore RTDB CFS RTDB CFS RTDB CFS CFS CFS https://firebase.google.com/docs/database/#key_capabilities https://firebase.google.com/docs/firestore/#key_capabilities
5.
機能の比較 • リアルタイム • オフライン •
サーバーレス • 複数DBプラン有り • 柔軟なデータ構造 • 表現力の高いクエリ • スケール可能な設計 RTDB CFS RTDB CFS = Realtime Database = Cloud Firestore RTDB CFS RTDB CFS RTDB CFS CFS CFS https://firebase.google.com/docs/database/#key_capabilities https://firebase.google.com/docs/firestore/#key_capabilities
6.
データ構造 Realtime Database
7.
JSON Realtime Database { "users":
{ "nvGvwR5": { "name": "Nobita", "skill": "Hirune" }, "zzD7UAv": { "name": "Suneo", "skill": "Jiman" } } } Firebaseコンソールの表示
8.
JSON Realtime Database { "users":
{ "nvGvwR5": { "name": "Nobita", "skill": "Hirune" }, "zzD7UAv": { "name": "Suneo", "skill": "Jiman" } } } データの取得イメージ /users/nvGvwR5/name ➡ "Nobita" /users/nvGvwR5 ➡ { "name": "Nobita", "skill": "Hirune" } ,
9.
• 指定した位置以下の子孫がすべて取得される Realtime Database 注意点 { "channels":
{ "-CSP36ah": { "name": "general", "messages": { "-MV5ahcO": {"from": "AAd7UZv", "message": "何してますか?忙しいですか..."}, "-MV5yaC0": {"from": "nvGvwR5", "message": "昼寝してた"}, "-MV6Almn": {"from": "AAd7UZv", "message": "近くのコンビニエンスストアで..."}, "-MV6L38V": {"from": "nvGvwR5", "message": "まかせといてよ"}, ... } }, "-CSP4CQz": { "name": "random", "messages": { ... } }, "-CSP4mAr": { "name": "oops", "messages": { ... } }, ... } } 😇「チャンネル一覧を取 得しようとしたら、チャ ンネル内のメッセージも 含めてすべてを取得し ちゃった☆」
10.
• なるべくデータのネストを避ける工夫が必要 • アプリの挙動を考慮に入れて設計 Realtime
Database 注意点 { "channels": { "-CSP36ah": { "name": "general" }, "-CSP4CQz": { "name": "random" }, "-CSP4mAr": { "name": "oops" }, ... }, "messages": { "-CSP36ah": { "-MV5ahcO": {"from": "AAd7UZv", "message": "何してますか?忙しいですか..."}, "-MV5yaC0": {"from": "nvGvwR5", "message": "昼寝してた"}, "-MV6Almn": {"from": "AAd7UZv", "message": "近くのコンビニエンスストアで..."}, "-MV6L38V": {"from": "nvGvwR5", "message": "まかせといてよ"}, ... }, "-CSP4CQz": { ... }, "-CSP4mAr": { ... }, ... } }
11.
データ構造 Cloud Firestore
12.
ドキュメント • JSONライクなKey-Value • Mapを使って構造化した ドキュメントも作れる Cloud
Firestore { "name": "Nobita", "skill": "Hirune" }
13.
コレクション • ドキュメントを含むコン テナ • ドキュメントはコレクショ ン内でユニークなIDを付 けて管理される Cloud
Firestore { "name": "Nobita", "skill": "Hirune" } nvGvwR5 { "name": "Suneo", "skill": "Jiman" } zzD7UAv users
14.
コレクション データの取得イメージ collection("users") ➡ nvGvwR5 { "name":
"Nobita", "skill": "Hirune" } , zzD7UAv { "name": "Suneo", "skill": "Jiman" } , Cloud Firestore { "name": "Nobita", "skill": "Hirune" } nvGvwR5 { "name": "Suneo", "skill": "Jiman" } zzD7UAv users
15.
サブコレクション { "name": "general" } CSP36ah { "name": "random" } CSP4CQz channels messages {
"from": "AAd7UZv", "message": "何してますか?忙しいですか..." } MV5ahcO { "from": "nvGvwR5", "message": "昼寝してた" } MV5yaC0 { "from": "AAd7UZv", "message": "近くのコンビニエンスストアで..." } MV6Almn { "from": "nvGvwR5", "message": "まかせといてよ" } MV6L38V messages ... Cloud Firestore
16.
サブコレクション { "name": "general" } CSP36ah channels messages { "from":
"AAd7UZv", "message": "何してますか?忙しいですか..." } MV5ahcO { "from": "nvGvwR5", "message": "昼寝してた" } MV5yaC0 { "from": "AAd7UZv", "message": "近くのコンビニエンスストアで..." } MV6Almn { "from": "nvGvwR5", "message": "まかせといてよ" } MV6L38V collection("channels").document("CSP36ah").collection("messages") Cloud Firestore
17.
クエリ Realtime Database
18.
サンプルデータ • "shiitake": 生しいたけの生産量(トン) • "konamon": 人口10万人あたりのお好み焼き・ 焼きそば・たこ焼き店の事業所数 Realtime
Database "shiitake": 「平成28年特用林産物生産統計調査」(農林水産省) (http://www.maff.go.jp/j/tokei/kouhyou/ tokuyo_rinsan/) "konamon": 「人口推計」(総務省統計局)(http://www.e-stat.go.jp/SG1/estat/ List.do?bid=000001039703&cycode=0)より「都道府県別人口」の平成26年、 「平成26年経済センサス‐基礎調査結果」(総務省統計局)(http://www.e-stat.go.jp/SG1/ estat/List.do?bid=000001064598&cycode=0)より「産業(小分類)、経営組織(5区分)別全事 業所数、男女別従業者数及び1事業所当たり従業者数-全国、都道府県」 から算出
19.
ソート Realtime Database Database.database().reference(withPath:
"pref") .queryOrdered(byChild: "shiitake") .observe(.childAdded) { snapshot in // ... } しいたけは、どこが多く生産してる? "shiitake"の値でソートしてみよう! <結果> 沖縄 | 26.1 佐賀 | 101.8 大阪 | 107.4 山梨 | 156.8 京都 | 167.6 東京 | 202.3 福井 | 213.8 山口 | 220.1 鳥取 | 232.1 青森 | 239.9 ... Database.database().reference(withPath: "pref") .queryOrdered(byChild: "shiitake") .observeSingleEvent(of: .value) { snapshot in // ... } ……これ、昇順じゃね? →降順ソートはできない 😩
20.
結果の数でフィルタRealtime Database Database.database().reference(withPath: "pref") .queryOrdered(byChild:
"shiitake") .queryLimited(toLast: 5) .observeSingleEvent(of: .value) { snapshot in // ... } 気をとりなおして上位5件だけ取得 (昇順なのでラスト5件) <結果> 群馬 | 3990.8 秋田 | 4223.6 岩手 | 4826.6 北海道 | 7613.5 徳島 | 8289.0 🙂
21.
値でフィルタ Realtime Database Database.database().reference(withPath:
"pref") .queryOrdered(byChild: "chiho") .queryEqual(toValue: "近畿") .observeSingleEvent(of: .value) { snapshot in // ... } 近畿地方のデータを検索 <結果> 三重 | 676.4 滋賀 | 430.4 京都 | 167.6 大阪 | 107.4 兵庫 | 1342.3 奈良 | 417.7 和歌山 | 966.7
22.
フィルタしてソートRealtime Database Database.database().reference(withPath: "pref") .queryOrdered(byChild:
"chiho") .queryEqual(toValue: "近畿") .queryOrdered(byChild: "shiitake") .observeSingleEvent(of: .value) { snapshot in // ... } 近畿地方でしいたけ生産量の順にソート *** Terminating app due to uncaught exception 'InvalidQueryParameter', reason: 'Cannot use multiple queryOrderedBy calls!' 😢
23.
クエリ Cloud Firestore
24.
ソート 降順ソートが可能! 😀 Cloud Firestore <結果> 徳島
| 8289.0 北海道 | 7613.5 岩手 | 4826.6 秋田 | 4223.6 群馬 | 3990.8 長崎 | 3432.6 栃木 | 2451.1 福島 | 2444.4 新潟 | 2437.7 宮崎 | 2384.5 ... Firestore.firestore().collection("pref") .order(by: "shiitake", descending: true) .getDocuments { snapshot, error in // ... }
25.
結果の数でフィルタ Firestore.firestore().collection("pref") .order(by: "shiitake", descending:
true) .limit(to: 5) .getDocuments { snapshot, error in // ... } 上位5件だけ取得 <結果> 徳島 | 8289.0 北海道 | 7613.5 岩手 | 4826.6 秋田 | 4223.6 群馬 | 3990.8 Cloud Firestore
26.
値でフィルタ Firestore.firestore().collection("pref") .whereField("chiho", isEqualTo: "近畿") .getDocuments
{ snapshot, error in // ... } 近畿地方のデータを検索 <結果> 三重 | 676.4 滋賀 | 430.4 京都 | 167.6 大阪 | 107.4 兵庫 | 1342.3 奈良 | 417.7 和歌山 | 966.7 Cloud Firestore
27.
フィルタしてソート Firestore.firestore().collection("pref") .whereField("chiho", isEqualTo: "近畿") .order(by:
"shiitake", descending: true) .getDocuments { snapshot, error in // ... } 近畿地方でしいたけ生産量の順にソート Cloud Firestore Error Domain=FIRFirestoreErrorDomain Code=9 "The query requires an index. You can create it here: https:// console.firebase.google.com/project/……(以下略)" 😮 URL
28.
フィルタしてソート Firestore.firestore().collection("pref") .whereField("chiho", isEqualTo: "近畿") .order(by:
"shiitake", descending: true) .getDocuments { snapshot, error in // ... } 近畿地方でしいたけ生産量の順にソート Cloud Firestore Error Domain=FIRFirestoreErrorDomain Code=9 "The query requires an index. You can create it here: https:// console.firebase.google.com/project/……(以下略)" 😮 URL
29.
フィルタしてソート Firestore.firestore().collection("pref") .whereField("chiho", isEqualTo: "近畿") .order(by:
"shiitake", descending: true) .getDocuments { snapshot, error in // ... } 近畿地方でしいたけ生産量の順にソート Cloud Firestore <結果> 兵庫 | 1342.3 和歌山 | 966.7 三重 | 676.4 滋賀 | 430.4 奈良 | 417.7 京都 | 167.6 大阪 | 107.4
30.
複数のフィールドでソート Firestore.firestore().collection("pref") .order(by: "chiho", descending:
false) .order(by: "konamon", descending: true) .getDocuments { snapshot, error in // ... } 地方でソートし、その中は、 人口あたりの粉もん屋の数でソート Cloud Firestore <結果> ... 四国 | 徳島 | 29.9354838709677 四国 | 高知 | 27.9627163781625 四国 | 愛媛 | 21.4134275618375 四国 | 香川 | 17.896865520728 東北 | 青森 | 3.55555555555556 東北 | 福島 | 2.96371997956055 東北 | 宮城 | 2.91970802919708 東北 | 秋田 | 2.91627469426152 東北 | 山形 | 2.68863833477884 東北 | 岩手 | 2.60336906584992 近畿 | 兵庫 | 34.9237668161435 近畿 | 大阪 | 32.1634127073694 近畿 | 京都 | 23.1735159817352 近畿 | 和歌山 | 21.3562753036437 近畿 | 奈良 | 18.6599423631124 近畿 | 三重 | 14.7202607278653 近畿 | 滋賀 | 11.032531824611 ...
31.
まとめ(ぼくの理解) データベース …というよりは、 巨大なJSONストレージ ストアと名前がついて いるが、NoSQLの 本格的なデータベース ご清聴ありがとうございました Realtime Database Cloud
Firestore
Jetzt herunterladen