これは何?
Firebase iOS SDKはmacOSでは使えないと思ってはいませんか?
その通りです!
ただし、Authentication、 Realtime Database、Storageの3つに関しては、アンオフィシャルではありますが、有志によるビルドチェックとユニットテストが行われており、アンオフィシャルではありますが、macOSでも利用が可能です。アンオフィシャルですが。
すごく欲しい Analytics は動きません。
この記事は4回にわたって、macOSで動くFirebaseを使ったログイン機構を備える個人メモ的な何かを作っていくチュートリアル的な奴です。
最新の(ベータではない)Swift、XcodeおよびCocoaPodsを使ってmacOSアプリケーションを作ることができる方を対象としています。
Xcode、Swift、CocoaPodsの使い方に関しては全く説明してません。
また、Googleのアカウントは取得済みであるとします。
プロジェクトを作る
Xcodeで新規プロジェクトを作成する
CoreDataを使わない、ドキュメントベースではない、Storyboardも使わない Cocoa Appの新規プロジェクトを作成してください。
名称を含めそのほかの設定はお好みで構いませんが、バンドルIDはFirebaseに登録しますので、使いまわしを考えている場合はちゃんとしたバンドルIDを設定してください。
Firebaseに登録したバンドルIDは変更できません。
CocoaPodsの設定とインストール
Firebase iOS SDKのプロジェクトへの取り込みはCocoaPodsを使用します。
Podfileが iOS のものとは全く異なります。
mscOSでFirebaseを利用する場合のPodfileは以下の通りです。
target 'YOUR_TARGET_NAME' do
use_frameworks!
pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => '5.0.0'
pod 'FirebaseAuth', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => '5.0.0'
pod 'FirebaseDatabase', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => '5.0.0'
pod 'FirebaseStorage', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => '5.0.0'
end
上の取り込みが出来ているなら、細かい書き方はお好みで。
作成したPodfileを使ってinstallを行ってください。
Firebaseに登録する
Firebaseプロジェクトの作成
Firebaseを使い始めるためにはFirebase内にプロジェクトを作成する必要があります。
Firebase consoleから「プロジェクトを追加」をクリックしてください。
「プロジェクト名」はご自由に付けてください。
「プロジェクト ID」は自動作成されたもので構いません。
「プロジェクトを作成」してください。
しばらくすると作成が完了するので次へをクリック。
以下のような画面になりますので、泣きながら「iOS アプリに Firebase を追加 」を選択します。
「iOS バンドルID」に 先ほど設定した”macOS"のバンドルIDを設定します。
これは後から変更できません。

次へをクリックして「GoogleService-Info.plist」をダウンロードして、プロジェクトに追加します。

あとは、全部スキップします。
ログインプロバイダの設定
Firebase consoleの「Authentication」の「ログイン方法」を選択します。

今回は「メール/パスワード」のみを有効にします。

プロジェクトを整理
プロジェクトに無駄なものがあるので削除しておきます。
一度ビルドしないとCocoaPodsで入れたモジュールが認識されないと思うのでビルドしておきます。
MainMenu.xibからWindowを削除します。
AppDelegate.swiftを以下のようにします。
import Cocoa
import FirebaseCore
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationWillFinishLaunching(_ aNotification: Notification) {
FirebaseApp.configure()
}
}
FirebaseApp.configure()
はFirebaseを使用する時に一番始めに呼び出してFirebaseを利用する環境を設定するものです。
applicationDidFinishLaunching(_:)
ではなくapplicationWillFinishLaunching(_:)
で行うほうが多分いいです。
次回
次回はFirebaseのAuthenticationを利用したログインとログアウトを実装します。
macOSでFirebaseを使う ~ Authentication編
macOSでFirebaseを使う ~ Realtime Database用準備編