簡體   English   中英

使用 Firebase 模擬器運行 Firebase Admin 時是否需要憑據?

[英]Is credential necessary when running Firebase Admin with Firebase Emulator?

我通過在不同終端上設置的 Firebase 模擬器的函數框架在 python 上運行 Firebase Admin SDK,我有一個問題。

雖然這適用於 shell(zsh)...:

# python
import firebase_admin
from firebase_admin import auth as admin_auth, firestore as admin_firestore, credentials

app_options = {'projectId': 'dev-some-project'}
firebase_admin.initialize_app(options=app_options)
db = admin_firestore.client()


def change_order_state(request):
    return 123

# shell
FIRESTORE_EMULATOR_HOST=localhost:8080 \
FIREBASE_AUTH_EMULATOR_HOST=localhost:9099 \
GOOGLE_APPLICATION_CREDENTIALS=./path_to_credential.json \
functions_framework --target=change_order_state --port=1234

但這,沒有GOOGLE_APPLICATION_CREDENTIALS ,在外殼上不起作用:

FIRESTORE_EMULATOR_HOST=localhost:8080 \
FIREBASE_AUTH_EMULATOR_HOST=localhost:9099 \

functions_framework --target=change_order_state --port=1234

錯誤日志說:

google.auth.exceptions.DefaultCredentialsError:
Could not automatically determine credentials.
Please set GOOGLE_APPLICATION_CREDENTIALS or 
explicitly create credentials and re-run the application. 

是否可以在不設置GOOGLE_APPLICATION_CREDENTIALS情況下使用 Firebase 模擬器運行 Firebase Admin? 在模擬器上運行時,我沒有看到設置憑據的必要性。

或者任何其他解決方案都可以。 看了這篇文章,這個方案只要能用Python寫就可以了。

我不想設置GOOGLE_APPLICATION_CREDENTIALS是我不想將憑證文件分發給所有開發人員,這對於初始開發階段來說太重了。

[可選] ...如果沒有憑據就無法運行,那么在使用模擬器在本地機器上運行 Firebase Admin SDK 時,為開發人員提供的最低 GCP 角色是什么。 Firebase 管理員角色對我來說似乎太強大了。

謝謝!

是的,一些憑據是必需的,因為它會查找憑據並應用 DefaultCredentials 函數,並且您得到了 DefaultCredentialsError。

但您可以使用AnonymousCredentials

from google.cloud import firestore
from google.auth import credentials

client = firestore.Client(credentials=credentials.AnonymousCredentials())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM