【入門】Firestoreの使い方

簡単な操作を通じて、Firestoreの概要を確認します。管理画面で「データベースの作成」「コレクション・ドキュメントの追加」を行い、Node.jsから「ドキュメントを取得」といった作業を行います。

データベースの作成

Authenticationによるユーザー認証の動作確認 で作成したプロジェクトで作業を進めます。

721-firebase-firestore-introduction_01.png

データベースの作成をクリックします。

721-firebase-firestore-introduction_02.png

今回は動作確認目的なので、テストモードで開始を選択して全ドキュメントにアクセスできるようにします。

721-firebase-firestore-introduction_03.png

asia-northeast1( 東京 )を選択します。

参考
リージョンのロケーション

ドキュメントを追加

Firestoreの構成要素

要素 概要
コレクション ドキュメントを格納できる。
ドキュメント 複数のデータ サブコレクションを格納できる。
JSONによく似ている。
データ キーと値のセット。
users: {                // コレクション
  xxx: {                // ドキュメント
    name: {             // データ > map
      first: 'tarou',   // データ > string
      last: 'yamada'    // データ > string
    },
    old: 27,            // データ > number
    posts: {            // サブコレクション
      111: {},          // ドキュメント
      222: {}           // ドキュメント
    }
  },
  yyy: {                // ドキュメント
    name: {             // データ > map
      first: 'satoshi', // データ > string
      last: 'suzuki'    // データ > string
    },
    old: 35,            // データ > number
    posts: {            // サブコレクション
      333: {}           // ドキュメント
    }
  }
}

コレクション・ドキュメントを追加

721-firebase-firestore-introduction_04.png

コレクションを開始をクリックします。

721-firebase-firestore-introduction_05_01.png

コレクションIDとしてusersと入力しました。

721-firebase-firestore-introduction_05.png

最初のドキュメントを入力します。

参考
サポートされているデータ型 | Firebase

サブコレクションを追加

721-firebase-firestore-introduction_06.png

先ほど追加したドキュメントにサブコレクションを追加してみます。

721-firebase-firestore-introduction_07.png

postsというサブコレクションを追加しました。

Node.jsでアクセス

Node.jsでプログラムを実装して、管理コンソールで追加したドキュメントを取得してみます。

SDKをインストール

npm i --save firebase

ドキュメント取得

app.js に以下処理を記述します。

(async () => {
  try {
    const firebase = require('firebase')
    const config = {
      apiKey: '### FIREBASE API KEY ###',
      authDomain: '### FIREBASE AUTH DOMAIN ###',
      projectId: '### CLOUD FIRESTORE PROJECT ID ###',
    }
    firebase.initializeApp(config)
    const db = firebase.firestore()

    const userRef = db.collection('users').doc('kpUVKKold2s0rMcDnPTx')
    const userDoc = await userRef.get()
    if (userDoc.exists) {
      console.log(userDoc.id)
      console.log(userDoc.data())
      console.log(userDoc.get('name'))
      console.log(userDoc.get('old'))
    } else {
      console.log('No such document!')
    }
    await db.app.delete()
  } catch (err) {
    console.log(`Error: ${JSON.stringify(err)}`)
  }
})()

動作確認

実行結果です。

$ node app.js 
kpUVKKold2s0rMcDnPTx
{ name: 'yamada', old: 35 }
yamada
35

参考・関連

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。