Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

[Swift] macOSでFirebaseを使う ~ 準備編

More than 1 year has passed since last update.

これは何?

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は以下の通りです。

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」は自動作成されたもので構いません。
「プロジェクトを作成」してください。
スクリーンショット (1).png

しばらくすると作成が完了するので次へをクリック。
以下のような画面になりますので、泣きながら「iOS アプリに Firebase を追加 」を選択します。

スクリーンショット (3).png

「iOS バンドルID」に 先ほど設定した”macOS"のバンドルIDを設定します。
これは後から変更できません。

スクリーンショット_2018-07-12_20_43_26.jpg

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

スクリーンショット_2018-07-12_20_44_24.jpg

あとは、全部スキップします。

ログインプロバイダの設定

Firebase consoleの「Authentication」の「ログイン方法」を選択します。

スクリーンショット_2018-07-12_21_19_32.jpg

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

スクリーンショット_2018-07-12_21_22_00.jpg

プロジェクトを整理

プロジェクトに無駄なものがあるので削除しておきます。

一度ビルドしないとCocoaPodsで入れたモジュールが認識されないと思うのでビルドしておきます。

MainMenu.xibからWindowを削除します。
AppDelegate.swiftを以下のようにします。

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用準備編

macOSでFirebaseを使う ~ Realtime Database編

macOSでFirebaseを使う ~ おまけ

masakihori
非えんじにあ / 素人が雰囲気で書いてます
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away