Firestoreの使い始め、GUIでの操作方法をについてご紹介しました。以下のディレクトリ構成で検証を進めていきます。main.pyがPythonプログラム、service_account.jsonがサービスアカウントの認証情報です。Firestoreに限らず、プログラムでGCPのプロダクトを操作するにはサービスアカウントが必要です。サービスアカウントを作成します。[サービスアカウントを作成]と進みます。console.cloud.google.com名前や説明は任意です。編集者」ロールを付与します。その後、認証情報(秘密鍵)をservice_account.jsonというファイル名でローカルに保存しておきます。ライブラリのインストールpipで以下のライブラリをインストールしておきます。google-cloud-firestore環境変数の設定service_account.jsonがあるディレクトリで以下を実行します。プログラム上で参照する環境変数です。FirestoreのWebUIで予めコレクションを作成しておきます。今回はtrue-flyというコレクションを作成しました。最低ドキュメントが1つ必要なので、空で作成しています。ドキュメントを作成するtrue-flyコレクションにドキュメントをPythonで作成していきます。true-flyというコレクションを指定しています。Firestoreにドキュメントが追加されます。今回は当ブログの記事のRSSデータを登録してみます。})結果をWebUIで確認します。無事データが入りました!ドキュメントのIDは自動で割り振られます。IDを自分で指定したいときは、db.collection('true-fly').document('ここでIDを指定')で設定できます。})ドキュメントの一覧を取得するドキュメント一覧を取得したい場合は、db.collection('true-fly').stream()で取得できます。配列で返ってくるので、forで回して、1行ずつdictに変換して標準出力してみます。07:00:00'}{}ドキュメントを検索する当ブログのRSSデータをある程度追加した上で、今度はドキュメントを検索してみます。ドキュメントを検索するには、db.collection('true-fly').where(演算子).stream()でできます。文字列の完全一致検索であれば以下のとおりです。'Python']}クエリ演算子はこちらのドキュメントに記載されています。cloud.google.com配列内の要素で検索は、array_contains演算子でできました。'https://www.true-fly.com/entry/2021/08/26/070000'}文字列の部分一致のような高度なクエリは実行できないようです。このへんがNoSQLの弱みかもしれません。FirestoreをPythonで操作する方法についてご紹介しました。データの登録はスキーマレスなのでdictで自由に登録できたり、全件データを取得するのも関数一つでできるので、複雑なコードを書かなくともデータの出し入れができるのが非常に魅力的です。Firestoreを使ってみる前回の記事で、NoSQLについてご紹介しました。はてなブログPro都内でGCP、Python使ったデータエンジニアやってます。クラウドでの設計~開発・運用まで全部やります。20代文系エンジニアです。GCP、Python中心に、データエンジニアとして学んでいる技術をご紹介する記事を書いています。BigQueryとAirflowとバイクと鳥が好き。アイコンはたまたまお魚を加えていたときのカワセミさん。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。