[英]Firestore emulator with anonymous credentials
我正在嘗試讓 Firestore 在本地 Linux PC 上使用 Python 在模擬器模式下工作。 是否可以為此使用匿名憑據,這樣我就不必創建新的憑據?
在運行firebase emulators:start
:
from firebase_admin import credentials, firestore, initialize_app
project_id = 'my_project_id'
cred = credentials.ApplicationDefault()
initialize_app(cred, {'projectId': project_id})
db = firestore.client()
這引發了以下異常:
DefaultCredentialsError:無法自動確定憑據。 請設置 GOOGLE_APPLICATION_CREDENTIALS 或明確創建憑據並重新運行應用程序。 有關詳細信息,請參閱https://cloud.google.com/docs/authentication/getting-started
from google.auth.credentials import AnonymousCredentials
from google.cloud.firestore import Client
cred = AnonymousCredentials()
db = Client(project=project_id, credentials=cred)
這行得通,但隨后我嘗試使用以下 Python 代碼從數據庫中訪問我已使用 Web 界面手動插入到數據庫中的文檔:
doc = db.collection('my_collection').document('my_doc_id').get()
然后我收到以下錯誤,這可能表明匿名憑據不起作用:
PermissionDenied:403 缺少或權限不足。
這是一個非常復雜的系統,盡管我已經閱讀了大量文檔頁面、觀看了教程視頻等,但似乎需要設置無窮無盡的配置迷宮才能使其正常工作。 如果我能以最小的努力讓 Firestore 在我的本地 PC 上運行,看看數據庫是否適用於我的應用程序,那就太好了。
謝謝!
如果設置了環境變量,則方法 2 有效。 在以下更改localhost:8080
到使用firebase emulators:start
時顯示的 Firestore 服務器地址
import os
os.environ['FIRESTORE_EMULATOR_HOST'] = 'localhost:8080'
我不知道如何使用firebase_admin
Python package 使其與上面的方法 1 一起使用。也許其他人知道。
另請注意,模擬的 Firestore 數據庫將在服務器關閉時丟棄其所有數據。 要持久化和重用數據,請使用如下命令啟動模擬器:
firebase emulators:start --import=./emulator_data --export-on-exit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.