Swiftでタイピングアプリ制作(5)〜Cloud Firestoreを使う①〜
さて、ようやくFirebaseに接続することができた前回でした。
今回はようやく接続することができたので、ログを保存するために、Cloud Firestoreを接続するところまで実装したいと思います。
データベースを作成する。
まず、Firebase Consoleにアクセスして、今回制作しているプロジェクトを開きます。リンクは↓
左のメニューバーにある「Database」を押します。「Database」とは、わたしたちのデータをオンライン(Firebase)に保存しておくことができる仕組みです。後ほどデータを引き出すこともできます。
出てくるウィンドウから、基本的には「ロックモード」を選択し、自分で設定を書きます。「テストモード」を選んでしまうとどのアプリケーションからもアクセスすることができるようになってしまい、大変なことになります。
PodにFirestoreを追加する。
PodfileにFirestoreのパッケージを追加します。ファイルの内容は下記のようにしました。
target 'typelab iOS' do
use_frameworks!
pod 'Firebase/Core'
pod 'Firebase/Firestore'
pod 'Firebase/Database'
end
target 'typelab macOS' do
use_frameworks!
end
上記のようにしてpod installを実行します。
AppDelegate.swiftを編集する。
AppDelegate.swiftに下記の行を追加して、データベースを初期化させます。
# import Firebaseの下
import FirebaseDatabase
# func applicationの中、
# FirebaseApp.configure()の下に記載する。
let db = Firestore.firestore()
これによって、dbという定数(一度宣言したら変わらない変数)にFirestoreのデータベースをあてがいました。
dbを呼び出せば、データベースを呼び出すことができます。
保存するプログラムをつくる。
前々回、GameViewController.swiftのなかでprintをつかってtextViewの変更のログを表示させる仕組みを作りました。
では、dbの中身にデータを投入するためのプログラムを書きます。
var ref: DocumentReference? = nil
ref = db.collection("textlog").addDocument(data: textView) { err in
if let err = err {
print("Error adding document: \(err)")
} else {
print("Document added with ID: \(ref!.documentID)")
}
}
公式ドキュメントの内容を少し変えました。ではとりあえずテストプログラムが動くか、貼り付けて動かして検証してみましょう。
エラーが出た。
エラーが出ました。一つはAppDelegate.swiftに黄色の注意マーク、そして、GameViewController.swiftに一つです。
どちらもdbにエラーが出ました。_(アンダースコア)にせよというエラーメッセージが出たのですが動かない。。。
次回は解決編!(にしたいです!)
ただ続けることを目的に、毎日更新しております。日々の実践、研究をわかりやすくお伝えできるよう努力します。