python
pip install firebase-admin # firebase firestore
pip install --upgrade google-cloud-storage # cloud storage
--Authentifizierungsdatei für den programmgesteuerten Zugriff auf Firebase.
Von https://firebase.google.com/docs/admin/setup?hl=ja
- Öffnen Sie in der Firebase-Konsole Einstellungen> Dienstkonten.
import
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
initialize
cred = credentials.Certificate('<pass_to_json_file>')
default_app = firebase_admin.initialize_app(cred)
** Ersetzen Sie <pass_to_json_file>
durch den Pfad (Zeichenfolge) zur json-Datei. ** **.
** Stellen Sie sicher, dass Sie initialisieren, bevor Sie auf die Firebase-Daten zugreifen. ** **.
Wenn Sie nicht initialisieren, tritt ein Fehler auf und Sie können die Daten nicht erfassen.
Es kann ein wenig bequem sein, "cred" und "default_app" als globale Variablen zu reservieren und eine Initialisierungsfunktion wie unten gezeigt vorzubereiten.
initialize2
cred = None
default_app = None
def initializeFirebaseAPP():
global cred
global default_app
cred = credentials.Certificate("< pass_to_json_file >")
default_app = firebase_admin.initialize_app(cred)
export
export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"
initialize
default_app = firebase_admin.initialize_app()
doc_ref
können Sie mit der```-Methode überprüfen, ob das Dokument vorhanden ist.getFirestoreData
def getFirestoreData(collectionName, documentName):
db = firestore.client()
doc_ref = db.collection(collectionName).document(documentName)
doc = doc_ref.get()
print(u'Document data: {}'.format(doc.to_dict()))
--Verwenden Sie "Stream" für "Sammlung", um alle ** Dokumente ** direkt unter der Sammlung abzurufen.
getFirestoreData2
def getFirestoreData2(collectionName):
db = firestore.client()
docs = db.collection(collectionName).stream()
for doc in docs:
print(u'{} => {}'.format(doc.id, doc.to_dict()))
getFirestoreData3
def getFirestoreData3(col_name, doc_name, col_name2):
db = firestore.client()
doc_ref = db.collection(col_name).document(doc_name)
col_ref2 = doc_ref.collection(col_name2)
Derzeit ist es nicht möglich, eine Liste der Dokumentensammlungen in Python abzurufen.
Wenn Sie eine Liste von Untersammlungen erhalten möchten, verwenden Sie zusammen eine andere Sprache.
Wenn Sie beispielsweise in Ruby schreiben, ist dies wie folgt.
getCollectionList.rb
require "google/cloud/firestore"
firestore = Google::Cloud::Firestore.new project_id: "<project_id>", keyfile: "<path_to_json>"
doc_ref = firestore.doc "<col_name>/<doc_name>"
doc_ref.cols do |col|
puts col.collection_id
end
uploadData2Firestore
def uploadData2Firestore(collectionName, documentName, data):
db = firestore.client()
doc_ref = db.collection(collectionName).document(documentName)
doc_ref.set(data)
update_data
def update_data(collectionName, documentName, key, value):
db = firestore.client()
doc_ref = db.collection(collectionName).document(documentName)
doc_ref.update({key: value})
deleteFirestoreDocument
def deleteFirestoreDocument(collectionName, documentName):
db = firestore.client()
db.collection(collectionName).document(documentName).delete()
import
import firebase_admin
from firebase_admin import credentials
from google.cloud import storage
initialize
storage_client = storage.Client.from_service_account_json('<pass_to_json_file>')
export
export GOOGLE_APPLICATION_CREDENTIALS="<pass_to_json_file>"
initialize
storage_client = storage.Client()
download_blob
def download_blob(src_blob_url, dst_file):
bucket_name = '<bucket_name>'
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(src_blob_url)
storage_client.download_blob_to_file(blob, dst_file)
print('Blob {} downloaded to {}.'.format(src_blob_url, dst_file))
upload_blob
def upload_blob(file_name, data_sorce):
bucket_name = '<bucket_name>'
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(file_name)
blob.upload_from_filename(filename=data_sorce)
if file_name in bucket.list_blobs():
print("cloud storage: upload success")
else:
print("cloud storage: upload failed")
delete_blob
def delete_blob(blob_url):
bucket_name = '<bucket_name>'
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(blob_url)
blob.delete()
――Ich hatte nicht viele Informationen darüber, wie man die Verwendung von Umgebungsvariablen vermeiden kann, deshalb habe ich sie zusammengefasst. ――Es mag sicherer sein, Umgebungsvariablen im tatsächlichen Betrieb zu verwenden, aber ...
――Das Folgende ist eine Seite, die ich oft besucht habe.