Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code

Einführung

Wir haben zusammengefasst, wie Sie vorgehen müssen, wenn Sie eine Verbindung über Python-Code und Google Cloud-Funktionen anstelle von Google Cloud-Funktionen für Firebase herstellen möchten.

Es heißt nicht, dass die Anmeldeinformationen aus Firebase abgerufen werden. Weitere Informationen finden Sie in anderen Artikeln.

Umgebung

Mit Cloud 3.7 erstellte Google Cloud-Funktionen

firebase-admin 3.2.1

Einschränkungen beim Schreiben von Python-Code mit Google Cloud-Funktionen

Es scheint, dass es nur main.py und require.txt akzeptiert. Ich konnte die übliche Datei serviceAccountKey.json nicht lesen. Es ist eine übliche Methode zur Authentifizierung, indem der Dateipfad in Anmeldeinformationen eingetragen wird. Zertifikat.

Erstellen Sie Anmeldeinformationen. Zertifikat aus einer anderen Datei als einer Datei

Also habe ich nach anderen Methoden gesucht.

Zuerst habe ich die API-Spezifikationen überprüft. https://firebase.google.com/docs/reference/admin/python/firebase_admin.credentials

A credential initialized from a JSON certificate keyfile.

Es scheint also das zu sein, was aus der Schlüsseldatei zu tun ist. Auf der Javascript-Seite beschreibt die API-Spezifikation übrigens, wie andere Dateien als Dateien akzeptiert werden. Wenn Sie also Javascript verwenden, lesen Sie bitte die API-Spezifikation.

Ich fragte mich, was für eine Verarbeitung das war, also ging ich zur Quelle. https://github.com/firebase/firebase-admin-python/blob/master/firebase_admin/credentials.py

#Zitiert aus Zeile 81 der obigen URL
if isinstance(cert, str):
    with open(cert) as json_file:
    json_data = json.load(json_file)
elif isinstance(cert, dict):
    json_data = cert

Kannst du es machen? Wenn Sie es also zu einem Diktattyp machen und es übergeben, wird es es lesen. Sie lesen die Quelle.

Lassen Sie es uns implementieren

In meinem Fall veröffentliche ich diesen Code auf github, also setze ich den Inhalt von serviceAccountKey.json so, wie er in der Umgebungsvariablen ist, und lade ihn. Es ist in Ordnung, wenn Leute es in den Python-Code einbetten, da es nicht veröffentlicht wird. Seien Sie jedoch vorsichtig, wenn Sie damit umgehen, da es schlecht ist, wenn es leckt.

Der Teil der Umgebungsvariablen verwendet python-dotenv, wird jedoch weggelassen.

Die aus dem Client-Erstellungscode extrahierte Version lautet wie folgt.

import os
import json
import firebase_admin
from firebase_admin import firestore
from firebase_admin import credentials

cred = credentials.Certificate(json.loads(os.environ.get("FIREBASE_KEY")))
firebase_admin.initialize_app(cred)
db = firestore.client()

Abhängige Bibliotheken

firebase-admin
google-cloud-firestore

Es gibt zwei, also geben Sie sie bitte ein. Im Code wird nur "firebase-admin" angezeigt, aber beide werden benötigt, da "firebase-admin" von "google-cloud-firestore" abhängt.

abschließend

Google Cloud-Funktionen für Firebase unterstützen jetzt Python (damals war nichts falsch)

Recommended Posts

Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
So aktualisieren Sie Google Sheets von Python
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Herstellen einer Verbindung zu Cloud SQL PostgreSQL auf der Google Cloud Platform aus einer lokalen Umgebung mit Java
So rufen Sie die Cloud-API über GCP-Cloud-Funktionen auf
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
Stellen Sie mit Python eine Verbindung zu BigQuery her
So kratzen Sie Bilddaten von Flickr mit Python
Stellen Sie mit Python eine Verbindung zu Wikipedia her
Stellen Sie von Python aus eine Verbindung zu SQLite her
So extrahieren Sie einen Termin in Google Kalender mit Python
Herstellen einer Verbindung zu verschiedenen DBs über Python (PEP 249) und SQL Alchemy
Hochladen von Dateien in den Cloud-Speicher mit dem Python-SDK von Firebase
[GCP] Ausgeben von Cloud-Funktionsprotokollen an Cloud Logging (Stackdriver Logging) (Python)
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Python: So verwenden Sie Async mit
Erste Schritte mit Python
Stellen Sie von Python aus eine Verbindung zur utf8mb4-Datenbank her
So berechnen Sie das Datum mit Python
So greifen Sie über Python auf Wikipedia zu
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Senden Sie eine Nachricht von IBM Cloud Functions an Slack in Python
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Stellen Sie mit Python in Docker eine Verbindung zu MySQL her
So arbeiten Sie mit BigQuery in Python
Verwenden Sie die Google Cloud Vision-API von Python
Wie man einen Taschentest mit Python macht
So suchen Sie in Google Colaboratory nach Google Drive
So zeigen Sie Python-Japanisch mit Lolipop an
[GCP] Betreiben Sie Google Cloud Storage mit Python
Zugriff auf RDS von Lambda (Python)
So wechseln Sie die Python-Version in Cloud9
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Wie man mit Python-Flüchen Japanisch eingibt
[Python] Verstehen, wie rekursive Funktionen verwendet werden
Verwenden von C ++ - Funktionen aus Python mit pybind11
Stellen Sie mit dem Python-Interpreter von PEPPER Mac eine Verbindung zu Pfeffer her
Verwendung von SQLAlchemy / Connect mit aiomysql
Laden Sie Bilder mit Python auf Google Drive hoch
Stellen Sie von Python aus eine Verbindung zur Websocket-API von coincheck her
So installieren Sie Python3 mit Docker Centos
Verwendung von VS Code (Codeserver) mit Google Colab in nur 3 Zeilen
Was tun, wenn die Python-Version in Cloud 9 von einer anderen Person erstellt wurde?
So führen Sie den Übungscode des Buches "Profitable KI mit Python erstellen" in Google Colaboratory aus
Erstellen Sie mit Pybind11 eine Umgebung zum Ausführen von C ++ - Funktionen aus Python (für Benutzer von Windows- und Visual Studio-Code).
Hochladen mit Heroku, Flask, Python, Git (4)
Lesen einer CSV-Datei mit Python 2/3
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Wie man Spaß am Programmieren mit Minecraft hat (Ruby, Python)
So öffnen Sie einen Webbrowser über Python
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
Firebase: Verwenden Sie Cloud Firestore und Cloud Storage von Python
Strategie zur Monetarisierung mit Python Java
Studie aus Python Hour7: Verwendung von Klassen