PythonでFirebaseCloudFirestoreに追加したデータを読み取る

スポンサーリンク

PythonでFirebaseCloudFirestoreに追加したデータを読み取ってみます。

前回、PythonでFirebaseCloudFirestoreを使用するという記事を公開しましたが、その続きで追加したデータを読み取ってみます。

なお、データを読み取るためには、Firebase AdminSDKのライブラリをインストールする必要があります。

■PC環境

Windows 10 Pro

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■FirebaseCloudFirestoreに追加したデータを読み取る

Cloud Firestoreで、今回は上記のように、「prsons」というコレクションを作成し、その中にデータ(フィールド)を追加しています。

追加したデータ(フィールド)を、Pythonを使用し、読み取ってみます。

■コード

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate(r"firestoretest-fab60-firebase-adminsdk.json(生成された秘密鍵・JSONファイル)")
firebase_admin.initialize_app(cred)

db = firestore.client()

result = db.collection('prsons').document("D2xghFzyYzqw8k9HKtH1").get()
if result.exists:
    print(result.to_dict())

追加したデータ(フィールド)を読み取る場合は、resultという変数を作成し、その中で作成したデータベース(db変数)に対して、collection()関数を使用し、「prsons」という作成したコレクションを渡します。その後、document()を使用し、コレクションの中に作成されたドキュメント「D2xghFzyYzqw8k9HKtH1」を渡します。最後にget()を使用します。これで、作成したコレクション内のドキュメントにあるデータ(フィールド)を取得し、変数に格納することができます。

格納後、if文を使用し、result変数内のデータの存在の有無を判定し、もしTrue(真),条件を満たす場合であれば、to_dict()関数で、result変数内のデータを辞書に変換し、print()関数で出力します

■実行(検証)

このスクリプトを「database_read.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、サービス アカウント(生成された秘密鍵・JSONファイル)を使用し承認が行われ、作成したコレクションにアクセスし、ドキュメントに追加されたデータ(フィールド)を取得し、print()関数で出力することができました。

■コレクション内のすべてのドキュメントを取得する(読み取る)

では、次にコレクション内のすべてのドキュメントを取得してみます。(読み取る)

取得する前に、コレクション内に複数のドキュメント,フィールドを追加しておきます。

■コード

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

cred = credentials.Certificate(r"firestoretest-fab60-firebase-adminsdk.json(生成された秘密鍵・JSONファイル))
firebase_admin.initialize_app(cred)

db = firestore.client()

docs = db.collection('prsons').get()
for doc in docs:
    print(doc.to_dict())

コレクション内のすべてのドキュメントを取得する(読み取る)際は、docsという変数を作成し、その中で、作成したデータベース(db変数)に対してcollection()関数を使用し、「prsons」という作成したコレクションを渡します。その後、get()を使用します。これで、コレクション内のデータ(ドキュメント,フィールド)が全て取得され、変数に格納されます。

格納後、for文によるループ処理(繰り返し処理)で、docs変数に格納されたコレクション内のデータ(ドキュメント,フィールド)を、to_dict()関数で辞書に変換し、print()関数で出力します。

■実行(検証)

このスクリプトを「database_read_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、サービス アカウント(生成された秘密鍵・JSONファイル)を使用し承認が行われ、作成したコレクションにアクセスし、コレクション内のすべてのドキュメントを取得。取得後、for文とprint()関数ですべてのドキュメントを出力させることができました。この時、ドキュメント内のフィールドも出力となります。

コメント

タイトルとURLをコピーしました