讀取 Cloud Firestore 的 database

官方文件

範例 1

以 getDocuments 讀取某個 collection 下全部的 documents

collection() 裡可傳入 collection 的名字,因此我們用 db.collection("songs") 取得 songs collection,然後再呼叫 function getDocuments 取得它底下所有的 documents。 (記得要 import Firebase)

document 的型別為 QueryDocumentSnapshot,利用它的 data() 可取得 dictionary 型別的資料。

比方以下寫法可取得歌名。

結果

ps: 當 getDocuments 找不到任何 document 時,可利用 querySnapshot.documents.count 是否為 0 判斷。

以 order(by:) 排序,由小到大。

以 rate 排序,由小到大。

結果

以多個欄位排序,比方先比身高,身高一樣再比體重。

以 order 的參數 descending 為 true 控制排序由大到小。

以 rate 排序,由大到小。

結果

以 limit(to:) 指定抓取的數量。

結果

利用 whereField 設定 search 的條件。

結果

範例 2

讀取某個 document

結果

讀取某個 document 下的 collection

結果

利用 document 或 collection 路徑讀取

利用 collection 路徑讀取 documents

結果

利用 document 路徑讀取 document

結果

持續偵測 collection 下的 document 是否有新增,刪除,修改

一開始 addSnapshotListener 會先抓到 collection 下所有的 document, 因此 documentChanges 將包含所有的 document,type 則為 .added。之後 addSnapshotListener 的 closure 再被觸發時,documentChanges 將只包含新增,刪除或修改的 document。

將偵測到的資料儲存到 array,顯示在表格上

自訂型別儲存 Firebase 抓取的資料

範例

在 SongsTableViewController 裡定義 function getSongs。

方法一: 用 map 將 Firebase 的資料轉換成自訂型別。

方法二: 用 forEach 將 Firebase 的資料轉換成自訂型別。

方法三: 用 for in 將 Firebase 的資料轉換成自訂型別。

彼得潘的 Swift iOS App 開發問題解答集

彼得潘和學生們在開發 iOS App 路上曾經解決的問題集

彼得潘的 iOS App Neverland

Written by

彼得潘的 Swift 程式設計入門,App程式設計入門作者,彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,http://apppeterpan.strikingly.com

彼得潘的 Swift iOS App 開發問題解答集

彼得潘和學生們在開發 iOS App 路上曾經解決的問題集

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade